I originally thought this was an xfce-panel issue but i think it might be down to the systray plugin. Basically if i have my panel set to auto hide then some of the icons go missing, and only show up again at irregular intervals. I think this is down to the code of the icon for the program, maybe its set to refresh every 5mins or something, so when the icon goes off screen the systray loses the icon, and only show it again when the programs redraws it. Maybe the icon pictures could be held in memory or something, so that when they go off screen and reappear again, they could be fetched from memory. Systray icons that dont have this problem: stardict (gtk) scim (gtk) Systray icons that suffer from this issue: amsn (tk) aMule (gtk?) opera (qt) skype (qt) Actually it looks like gtk programs dont have a problem (apart from amule), but others running a tk or qt interface do, maybe something different with the systray specifications for the different GUI's?
Is this being looked at at all?
(In reply to comment #1) > Is this being looked at at all? > I have no idea where to start looking. This could be related to http://bugzilla.xfce.org/show_bug.cgi?id=3233 and http://bugzilla.xfce.org/show_bug.cgi?id=3213 .
(In reply to comment #2) > (In reply to comment #1) > > Is this being looked at at all? > > > > I have no idea where to start looking. This could be related to > http://bugzilla.xfce.org/show_bug.cgi?id=3233 and > http://bugzilla.xfce.org/show_bug.cgi?id=3213 . > I think it might be, if i have my task bar set to auto hide then sometimes the icons become just a tiny line, aMule has this problem. I'll install gnome and see if it suffers from the same problem, if it doesn't, then maybe you could check out their panel code to see what this difference might be. I'll update you with me results
Ok, well i've just installed gnome and it doesn't have the same problem. But i've noticed how they auto-hide the task bar is a lot different to xfce. In xfce, when you auto-hide the task bar, it goes off of the screen completely and is cleared from memory. When you hover your mouse over it, it reappears and redraws the whole taskbar again (this is where the icons go missing). In gnome when you choose 'auto-hide task bar' the task bar just moves out of the screen x pixels, it isn't actually hidden, so its still being drawn by the graphics card, and everything is still in memory, its just been moved off the screen. So when you move your mouse over it, the icons are all still there, and there is nothing to be redrawn, as it was never cleared from memory. I am sure this is the problem, I believe think its a systray problem, I think its down to how the task panel auto-hides. When the icons get cleared out of memory, they aren't then being reloaded when needed, maybe down to the task panel not calling the application to redraw its icon, or down to the applications icon code itself, having a redraw only on certain events. I think if the code for the task panel can be changed to just move off the screen, instead of being cleared from memory, then this bug ticket can be changed to *fixed* I hope this helps you know where to start looking now ^^
I experience a similar problem with Tomboy, the gnome Mono/GTK# note-taking app (http://www.gnome.org/projects/tomboy/). When Tomboy starts, it minimizes to the system tray; then a right click brings up a small window. When the panel is not set to autohide, the program werks perfectly. But when the panel is set to autohide, as soon as it hides, the Tomboy's window becomes unresponsive. When the panel comes up by hovering the mouse over it, in the system tray there is an empty space where the tomboy icon was. Tomboy itself does not respond to anything anymore and must be killed. Running from a terminal does not give any output unfortunately.
A lot of tray code has been changed in trunk, can you guys try it?
(In reply to comment #6) > A lot of tray code has been changed in trunk, can you guys try it? > I'd like to try if you could provide some instructions on how to install it .. is it correct I should checkout the xfce4-panel project, run autogen.sh from the toplevel dir and then `./configure && make`? Can I then run the svn-version of the panel with the stable 4.4.1-version of xfce that I have, or should I install an svn-version of xfce as well? Thanks, I'd love to help out but am not familiar with this stuff and don't want to screw up my current installation :-)
(In reply to comment #6) > A lot of tray code has been changed in trunk, can you guys try it? > I'm using xfce4-panel from trunk and there are a lot of misbehaviors... A lot of icons don't show, don't change or are cut off*... The 'connecting' icon of Pidgin never gets replaced with the 'online' icon for example... *this may be caused by a GTK+ 2.12 bug(?)
Created attachment 1407 Shifted systray icons The systray should contain 5(?) icons, but they get shifted under the items on the right. The balloon is at the correct location! (clicking the icon is somewhat difficult, though...)
Probably something buggy in my code. Will take a look at it later.
I believe that the 'shifted/hidden icons' issue arose after r26139. In that revision ths icons don't change, but at least thay take up some space so their usable... -H-
Commit 26212 "Another attempt to fix tray icons" doesn't fix it unfortunately... The icons still appear on login, but dissappear after a short time-out...
Using 26270, my systray starts showing no icons, I need to remove the systray then add it for the icons to show up.
Ok, changed the code... again... you can guys try it?
Using 26319 and the systray is now working fine for me. Thanks Nick.
Created attachment 1433 Icon's don't hide anymore, but empty spaces appear... The icons don't disappear anymore, but upon launch, empty spaces appear and one of them decided to stay... Right-clicking the empty space pops up the 'system tray' menu.
The 'blank icon' seems top be the bluetooth-applet from the bluez-gnome package. Hiding it in the 'Hidden Applications' hides it. Unhiding it shows the empty space again. The only difference now is that the unhidden applet's rightclick action is the panel instead of the systray plugin.
I can't reproducre this. Bluetooth-applet works fine here. Maybe you're using Gtk 2.10 with "only display when adapter present" enabled in the bluetooth-properties. There was a bug in 2.10 with setting the gtk status icon hidden, which affects the systray because of the forced icon size.
Btw, this doesn't mean I won't fix it since we will depend on Gtk 2.10, but I'd like to have this confirmed before finding a solution ;).
(In reply to comment #19) > Btw, this doesn't mean I won't fix it since we will depend on Gtk 2.10, but I'd > like to have this confirmed before finding a solution ;). > GTK 2.12.0-1ubuntu3 (Xubuntu Gutsy) and indeed with 'Only display when adapter present' option. (and I removed it the day before yesterday) Upon login, multiple blank icons appear and dissapear, which the previous systray code didn't do... Nontheless, I like the new systray and hope this get's sorted out in the future...
Empty icons are now hidden from the tray (rev. 26369). This fixes the Gtk 2.10 problem and maybe also other weird initial icon sizes.
Created attachment 1437 'half' icon At first, I thought that you've nailed this bug shut, as the blank items don't appear anymore. Starting Pidgin however shows a 'half' icon... -H-
Typo in the code, should be fixed. Btw, thanks for testing almost every commit Harold, I really appreciate it!
Created attachment 1438 Icon overlaps frame Hey, it's the least I can do! You're getting really close with the last commit! The pidgin icons is visible again, but when collapsing the systray, it moves a pixel to the right, overlapping the frame...
Created attachment 1439 Icon overlaps frame (opened)
Committed another fix ^_^.
Ok has some problems with restart with icons. I know..
(In reply to comment #27) > Ok has some problems with restart with icons. I know.. > I haven't seen this yet... It looks fine here with all tray icons present on my system! (except for a 1px jumpyness when toggeling the frame and then (de-)collapsing, but that's something wich users don't tend to do very often)
(In reply to comment #28) > I haven't seen this yet... Was able to reproduce it once, but then it disappeared here. Maybe it was an old version of a compiled source, we'll see. > (except for a 1px jumpyness when toggeling the frame and then (de-)collapsing, > but that's something wich users don't tend to do very often) What do you mean? That the icons grow when you disable the frame?
Nevermind that last comment on the systray, I can't seem to reproduce it in the current version. The systray works perfect here (gtk 2.12) except for a bit of flickering when opening/collapsing the list, but that's a very minor issue... The only thing missing is an 'auto collapse on mouseout + timeout' ;)
(In reply to comment #30) > Nevermind that last comment on the systray, I can't seem to reproduce it in the current version. That is because I fixed it in one of the commits ^_^. > The systray works perfect here (gtk 2.12) except for a bit of flickering when > opening/collapsing the list, but that's a very minor issue... I've enabled double buffering in rev. 26412. Gnome has disabled this, probably with a reason, but maybe it fixes the flickering. > The only thing missing is an 'auto collapse on mouseout + timeout' ;) Yeah I know, maybe you can create a new bug for this one and assign it to me. This bug can be closed if the flickering issue is fixed (or unfixable).
(In reply to comment #31) > > The systray works perfect here (gtk 2.12) except for a bit of flickering when > > opening/collapsing the list, but that's a very minor issue... > > I've enabled double buffering in rev. 26412. Gnome has disabled this, probably > with a reason, but maybe it fixes the flickering. It has improved, but my untrained eye tells me the icons get redrawn on open/collapse, but I could be wrong about that...
It gets repositioned and therefore redrawn and because tray icons are external windows inside a socket, it might flicker a bit (ie. is slower then normal widgets). I'll leave the double buffering enabled for now, we'll see if it causes regressions... Closing bug. This one is way big ;).
Thank you for the new systray applet, Nick! I really like it...