Comment 0 for bug 382347

Revision history for this message
Bruce van der Kooij (brucevdk) wrote : Implement resize functionality for tray icons

Current windowing specifications (see EWMH, ICCCM) specify that each window sets an icon of sort sort, which is XPM based and stored in the X Server as a resource. AllTray currently fetches this icon through wnck's get_icon method and uses it in the tray. Regretfully as XPM is a raster format and as the icons are usually quite small (e.g. 24x24) they will not scale up properly (e.g. when the panel is resized).

There is a window manager hint called WM_ICON_NAME but it does not seem like this is used (the specification defines it as a should, not a must), so a possible workaround could be:

  1. Find an icon using the name from /proc/<pid>/status.
  2. If that fails, fall back to what libwnck uses.

It may however also be possible to cache all .desktop files and find the application icon by matching the values from /proc against the Exec keys. If a .desktop file cannot be found the procedure above may provide a nice fallback mechanism.

Using GTop as an abstraction towards all the process stuff looks like a good idea to me. As there aren't yet any bindings for Vala to GTop this will have to wait (Michael is working on this).