From cabaf247b3d7e93415ab09a0fe619f8df51be327 Mon Sep 17 00:00:00 2001 From: kotontrion Date: Thu, 23 May 2024 14:52:11 +0200 Subject: fix item registration on watcher owner changes --- src/tray.vala | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src') diff --git a/src/tray.vala b/src/tray.vala index 5bf9270..502e387 100644 --- a/src/tray.vala +++ b/src/tray.vala @@ -72,6 +72,27 @@ public class Tray : Object { proxy.StatusNotifierItemRegistered.connect(on_item_register); proxy.StatusNotifierItemUnregistered.connect(on_item_unregister); + proxy.notify["g-name-owner"].connect( + () => { + _items.foreach((service, _) => { + print("%s\n", service); + item_removed(service); + }); + _items.remove_all(); + + if(proxy != null) { + foreach (string item in proxy.RegisteredStatusNotifierItems) { + on_item_register(item); + } + } else { + foreach (string item in watcher.RegisteredStatusNotifierItems) { + on_item_register(item); + } + } + } + ); + + foreach (string item in proxy.RegisteredStatusNotifierItems) { on_item_register(item); } -- cgit v1.2.3