New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tray Icons Disappearing on i3bar #745
Comments
Checkgmail is a bad example, as it uses I could reproduce the problem with xchat, too, though. Not sure if it’s the same problem throughout all your applications, so feel free to follow-up. |
This should be fixed with commit 8a3574f. Feel free to re-open in case you got other test cases with which it still doesn’t work. |
[Original comment by Bruno BRAGA <bruno.braga@…>] Michael, Thanks for the input. This corrected issues for Skype and Xchat. And, as you predicted, checkgmail is still failing. I can survive with that by simply restarting the application every time (exec-always). Cheers, |
[Original comment by lkraav <leho@…>] Also experiencing this, following. I'm running 4.2 stable, I wonder how well the patch applies on top of it (-> Gentoo). I guess I can always clone the whole repo, too.. |
[Original comment by lkraav] I'm running now with 8a3574f applied. But still every time I connect my HDMI plug and i3 runs through its udev reaction stuff, Skype and wpa_gui icons disappear 100% of the time. I usually do in-place restart, that makes all the icons come back. I'd vote for reopening this. |
Replying to comment 5 by lkraav:
|
[Original comment by lkraav <leho@…>] That patch seemed to be independent enough to try. Either way, I'm now on 4.3. Problem still exists. Only thing I'm seeing in .xsession-errors is:
Tray moves to my external monitor and loses some icons. Now I'm also seeing that even when restarting i3, Skype icon comes back, but wpa_gui icon stays missing. wpa_gui is running.
|
[Original comment by lkraav <leho@…>] Replying to comment 7 by lkraav <leho@…>:
Common denominator is both of these are Qt-based apps. |
[Original comment by lkraav <leho@…>] Hi Michael Can you shoot an update on if you have any idea on what's going on here or is further information needed? |
Replying to comment 9 by lkraav <leho@…>:
|
[Original comment by angus@…] I am having this problem, running i3 4.4 on my netbook. If I start VLC or Skype, they put icons in the i3bar tray. When the xrandr outputs change (e.g if I plug in an external monitor, or if I use xrandr to change resolution or something), the applications keep running normally but their tray icons disappear. Restarting i3 with mod+shift+R makes the icons appear again. |
[Original comment by angus@…] Looks like a Qt bug, actually. VLC and Skype both use Qt. When the xrandr outputs change, i3bar kicks all the tray clients, expecting them to start the system tray protocol again. But it seems that Qt doesn't behave correctly. |
[Original comment by lkraav <leho@…>] This is still an issue on qt-4.8.4 |
[Original comment by angus@…] It looks like maybe Qt doesn't try to add system tray icons to the tray again unless it sees the previous tray window has been destroyed. (I'm looking at http://qt.gitorious.org/qt/qt/blobs/4.8/src/gui/util/qsystemtrayicon_x11.cpp near line 129.) I don't have much experience with X11 or the system tray, so I don't really know what I'm doing, but I tried to make i3bar destroy and recreate the tray window every time the outputs are reconfigured. Here is a quick not-very-well-tested patch that seems to only sometimes work. I might investigate more later, but if not, hopefully at least people can understand what I was trying to do.
|
After a few hours of debugging, I think that i3bar should send a faked DestroyNotify (makes Qt pick up the tray changes) followed by a MANAGER ClientMessage (makes GTK pick up the tray after the DestroyNotify). Find attached a patch which does that. It works for me with nm-applet and VLC. Please tell me how it works for you, then I’ll merge it. |
[Original comment by lkraav <leho@…>] Nice job @…. |
Thanks for the feedback. By the way, since I have just looked into this: Java (starting with OpenJDK ≥ 7) correctly realizes that the tray manager has gone away and passes that on via its API. This means it will send a PropertyChangeEvent with which the programmer can notice that the tray icons have been deleted and should be re-added. It seems like JDownloader and others don’t do that and therefore have a somewhat buggy system tray behavior. If someone wants to fix it and bring that fix upstream, I’d welcome that. Here is my proof of concept:
|
This ticket was fixed in commit http://c.i3wm.org/e9503a1f:
|
[Original comment by angus@…] Seems to work for me too. Thanks. |
[Originally reported by Bruno BRAGA <bruno.braga@…>]
(I am experiencing this annoying behaviour for some icons in the tray bar. They sometimes disappear out of nowhere, sometimes after coming back from suspend, or when I reload the i3 config (by hitting Mod+Shift+R).
It always happens with checkgmail/xchat icons, but intermittently with Skype as well.
I tried to check the logs, but there was nothing there. Even though the icons are gone, the applications are still running.
More details of this are discussed in the mailing list:
http://infra.in.zekjur.net/archives/i3-discuss/2012-June/000745.html
From the logs, it looks like the problem from the mailing list:
(complete log is attached).
The text was updated successfully, but these errors were encountered: