Running GTK+ applications under IceWM, if said applications use GtkStatusIcon to put icons in the system tray, those icons don't display fully - they get cut off left and right. This affects Pidgin and also a test program I wrote myself to check out system tray functionality. gtk_status_icon_get_size() returns 24, and gtk_status_icon_get_geometry() fills in the rectangle parameter with a rectangle of dimension 30x24 (in both cases called on an icon for which gtk_status_icon_is_embedded() returns TRUE). However, actually placing the icon in the tray, it's obvious that while the tray IS actually 24 pixels high, each individual icon is significantly less than 24 pixels wide, and definitely less than 30.
Steps to Reproduce:
Run IceWM. Run Pidgin.
Tray icon appears to be cut off; the right-hand side is definitely cut off (covered by just grey the same colour as the taskbar itself). The Pidgin icon looks like it might be missing a little from the left side as well, but my own test program shows the left edge of the icon but cuts off a lot on the right, suggesting that maybe the Pidgin icon also isn't cut off on the left, only the right.
Tray icons should be displayed fully.
Oh by the way, if screenshots or the source code to my test app are needed I can provide them. Pidgin-2.3.1, GTK+-2.12.8, IceWM-1.2.32.
Further data: if I use gtk_status_icon_new(), which gives no actual icon, and just set it visible immediately, the space available in the system tray looks the right size for 24x24 or maybe even 30x24. The moment I call gtk_status_icon_set_from_pixbuf() or gtk_status_icon_set_from_stock(), that icon actually instantly *shrinks* on the system tray, moving everything beside it over, until it's down to the smaller, cut-off, size. Making the icon invisible and then visible again doesn't change anything (it stays small). Deleting the GtkStatusIcon completely and creating a new one with gtk_status_icon_new_from_pixbuf() with a 30x24 pixbuf makes the icon smaller and cut-off. Using gtk_status_icon_new_from_pixbuf() with a 24x24 pixbuf sometimes seems to work right, but not always (oddly, it seems that the icon stays the right size if the mouse pointer is over the area where it will be created, but gets shrunk otherwise). The mouse *doesn't* seem to help using gtk_status_icon_new_from_stock(); these are always shrunk.
Yet more data: my program seems to be fine with Pidgin not running, or with it not using a systray icon. Looks like it may actually be Pidgin's fault and not GTK+'s or IceWM's? But still, IceWM shouldn't really allow bad parameters by one program to break another program's systray icon.
It is a pidgin bug.
That was using pidgin-2.4.3 and icewm-1.2.32. Now that I added ~x86 on icewm and updated to version 1.2.35, I have the pidgin taskbar icon working perfectly. My conclusion: icewm-1.2.35 should be marked x86 as soon as possible.
Can you confirm this is working right with x11-wm/icewm-1.2.35 ?
At least in my case emesene systray icon works fine, but I don't use pidgin :-/
Unfortunately, I no longer use IceWM (I've decided to go with Xfce, at least for a while). Given that both Vytautas and Pacho report that the issue is apparently fixed for them, shall I just close this?
No response to message 8; closing.