diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/lua/astal/widget.lua | 2 | ||||
-rw-r--r-- | core/src/astal.vala | 14 |
2 files changed, 15 insertions, 1 deletions
diff --git a/core/lua/astal/widget.lua b/core/lua/astal/widget.lua index 8f49409..90831bc 100644 --- a/core/lua/astal/widget.lua +++ b/core/lua/astal/widget.lua @@ -267,7 +267,7 @@ Gtk.Widget._attribute.css = { Gtk.Widget._attribute.class_name = { get = function(self) local result = "" - local strings = Astal.widget_set_class_names(self) + local strings = Astal.widget_get_class_names(self) for i, str in ipairs(strings) do result = result .. str if i < #strings then diff --git a/core/src/astal.vala b/core/src/astal.vala index 134293b..176062f 100644 --- a/core/src/astal.vala +++ b/core/src/astal.vala @@ -15,6 +15,9 @@ public class Application : Gtk.Application { public signal void monitor_removed(Gdk.Monitor monitor); [DBus (visible=false)] + public signal void window_toggled(Gtk.Window window); + + [DBus (visible=false)] public List<weak Gdk.Monitor> monitors { owned get { var display = Gdk.Display.get_default(); @@ -252,6 +255,17 @@ public class Application : Gtk.Application { }); }); + window_added.connect((window) => { + ulong id1, id2; + id1 = window.notify["visible"].connect(() => window_toggled(window)); + id2 = window_removed.connect((removed) => { + if (removed == window) { + window.disconnect(id1); + this.disconnect(id2); + } + }); + }); + shutdown.connect(() => { try { quit(); } catch(Error err) {} }); Unix.signal_add(1, () => { try { quit(); } catch(Error err) {} }, Priority.HIGH); Unix.signal_add(2, () => { try { quit(); } catch(Error err) {} }, Priority.HIGH); |