From c698f44730ab005b5905303b95d6273fc53899cd Mon Sep 17 00:00:00 2001 From: William Hua Date: Wed, 27 Aug 2014 09:50:05 -0400 Subject: Forget window source when destroyed. --- lib/main.vala | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/main.vala b/lib/main.vala index c05d0164..b8f34599 100644 --- a/lib/main.vala +++ b/lib/main.vala @@ -607,9 +607,11 @@ public class Indicator.Keyboard.Service : Object { } window_sources = new Gee.HashMap (); + ((!) window_stack).window_destroyed.connect (handle_window_destroyed); ((!) window_stack).focused_window_changed.connect (handle_focused_window_changed); } else { ((!) window_stack).focused_window_changed.disconnect (handle_focused_window_changed); + ((!) window_stack).window_destroyed.disconnect (handle_window_destroyed); window_sources = null; } } @@ -621,6 +623,11 @@ public class Indicator.Keyboard.Service : Object { update_window_sources (); } + [DBus (visible = false)] + private void handle_window_destroyed (uint window_id, string app_id) { + ((!) window_sources).unset (window_id); + } + [DBus (visible = false)] private void handle_focused_window_changed (uint window_id, string app_id, uint stage) { var sources = get_sources (); -- cgit v1.2.3