GNOME Bugzilla – Bug 123570
Sending multiple dock requests to the same window
Last modified: 2006-07-28 21:18:35 UTC
Right now, it's quite possible for the tray icon to send multiple dock requests to the same manager. The easiest way for this to happen is: Application receives the client manager telling that a new tray manager has started in its event queue realize() calls update_manager_window() application processes the client message, update_manager_window() is called again Handling things correctly is not hard: Once we've sent a dock request to a particular manager window, we must take no further action until *that* manager* window is destroyed. This is why the ICCCM states that when an app with a manager selection loses the manager selection, it must destroy the window.
Created attachment 20391 [details] [review] Patch fixing
The attached patch should fix things so that a dock request will only ever be sent once to the same window. As far as I know, it is completely correct; it probably could do with an extra comment or two.
Was never applied. Users are: ../../../zenity/src/eggtrayicon.c ../../../gnomemeeting/lib/eggtrayicon.c ../../../rhythmbox/widgets/eggtrayicon.c ../../../goobox/src/eggtrayicon.c ../../../muine/libmuine/egg/eggtrayicon.c ../../../gnome-jabber/src/eggtrayicon.c ../../../epiphany/lib/egg/eggtrayicon.c ../../../evolution/e-util/eggtrayicon.c ../../../gaim/plugins/docklet/eggtrayicon.c ../../../gnome-media/gnome-cd/eggtrayicon.c ../../../gwget/src/eggtrayicon.c ../../../gnome-control-center/typing-break/eggtrayicon.c ../../../straw/src/eggtray/eggtrayicon.c ../../../blam/libblam/eggtrayicon.c ../../../firestarter/src/eggtrayicon.c ../../../NetworkManager/examples/python/systray/eggtrayicon.c ../../../NetworkManager/panel-applet/eggtrayicon.c ../../../gnome-phone-manager/libegg/libegg/tray/eggtrayicon.c ../../../libegg/libegg/tray/eggtrayicon.c ../../../camorama-0.17/src/eggtrayicon.c Just for fun: gnomemeeting is using an old version of this file without all the current fixes. rhythmbox has added one function that is not in the original copy muine has copied the one from rhythmbox gnome-jabber is using an old version epiphany is using an older version with the same added function as rhythmbox evolution also uses the one with the added function gaim uses an older version gnome-cd uses the current libegg one gnome-control-center uses an old one in typing-break gwget uses an old one straw uses the one with the extra function (egg_tray_icon_new_for_xscreen()), but also removes #include <config.h> from it? blam has the current libegg version with some whitespace change firestarter uses the current libegg version NetworkManager has two different ones, one in example code and one in applet code gnome-phone-manager has the added function and so does camorama... Fun!
AFAICT, the patch is already committed.