aboutsummaryrefslogtreecommitdiff
path: root/release.sh
diff options
context:
space:
mode:
authorFurkan Sahin <furkan-dev@proton.me>2024-11-10 15:24:15 +0000
committerFurkan Sahin <furkan-dev@proton.me>2024-11-10 15:24:15 +0000
commita7ca50f2ac687499444c4b08ee2cd393f47513a1 (patch)
tree9efe991ec976964b7d60fadbfc5926bd1b2c99a7 /release.sh
parent969b11b8a79093d591f67491f7b90ab197dc2b8d (diff)
swaybar: Emit property changes for SNI watcher
Emit property change signals for the IsStatusNotifierHostRegistered and RegisteredStatusNotifierItems properties in StatusNotifierWatcher, so code relying on the PropertiesChanged signal, instead of signals such as StatusNotifierHostRegistered, can work properly. A library that is affected by this is the libappindicator-gtk3* library and it can cause tray icons to be missing after starting swaybar due to a race condition, as follows: * An application using libappindicator-gtk3 starts, e.g. nm-applet. * Some time later, swaybar starts. * swaybar creates the StatusNotifierWatcher. * libappindicator-gtk3 observes the new watcher, but it sees that IsStatusNotifierHostRegistered=false, so it falls back to the Freedesktop System tray protocol. * swaybar creates the StatusNotifierHost. At this point, libappindicator-gtk3 should "un-fallback" back to SNI. However, since swaybar does not emit the PropertiesChange signal on IsStatusNotifierHostRegistered, libappindicator-gtk3 doesn't get notified, and stays in fallback state forever. * As a result, nm-applet will not show in the swaybar tray. This race can be made reliable by inserting a 1-second long sleep here: https://github.com/swaywm/sway/blob/969b11b8a79093d591f67491f7b90ab197dc2b8d/swaybar/tray/tray.c#L57 (*) Note that the libappindicator-gtk3 library has been mostly replaced by libayatana-appindicator, which is not affected by this. The affected version is still used by Arch Linux, source code at: https://bazaar.launchpad.net/~indicator-applet-developers/libappindicator/trunk/files/298
Diffstat (limited to 'release.sh')
0 files changed, 0 insertions, 0 deletions