This is the mail archive of the
cygwin-xfree@cygwin.com
mailing list for the Cygwin XFree86 project.
Re: Custom icons per window class/name patch
Howdy!
At 02:56 PM 5/18/2003 -0400, you wrote:
Sorry to take this back to a discussion that you guys were having
earlier... but I remember that someone wrote something along the lines of,
"most window managers include their own set of icons for X apps since most
X apps do not set an icon to be shown on the upper-left hand corner of the
window".
When taken in the context of standard X window managers, that sounds
plausible. However, Exceed and XWin-32, if I recall correctly, seem to
display upper-left hand corner icons for most X apps. I sort of doubt
that Exceed and XWin-32 come with a set of icons for common X apps, but I
could be wrong.
Can anyone concretely prove to me that there is not a way to do app icons
without having a icon config file and a set of icon files for common X
apps? I would really like to avoid the headaches of distributing icons
and a new config file, if at all possible.
I am going to hold off on committing this patch until I am convinced that
it is the best way to go.
Yes, you're right for some apps (like the Qt ones Ralf mentioned) the icon is
included in the application itself, and it sets the WM_HINTS accordingly. You
can then check for it in the winCreateWindow section and also in the WM_HINTS
property handler if it's changed later. Others don't and then it's up to the
WM to give them one, either from a config file or some built-in defaults. If
you do an xprop on a window and the WM_HINTS doesn't have a WM_ICON listed then
any icon you're seeing is a figment of the window manager. ;)
Quick check: xload has an icon it specifies, xterm doesn't
$ xprop (on xload) icon only, no bitmask
...
WM_HINTS(WM_HINTS):
Client accepts input or input focus: False
Initial state is Normal State.
bitmap id # to use for icon: 0xa00001
...
$ xprop (on xterm) no icon
...
WM_HINTS(WM_HINTS):
Client accepts input or input focus: True
Initial state is Normal State.
...
$ xprop (on xclock) both icon and mask
...
WM_HINTS(WM_HINTS):
Client accepts input or input focus: False
Initial state is Normal State.
bitmap id # to use for icon: 0xc00001
bitmap id # of mask for icon: 0xc00003
...
So a full-fledged patch should take that bitmap ID and convert it from an
XBM to a icon resource in the wincreate() function, and give the default or
config file specified icon for xterm.
Also, I didn't intend the change to be an official patch. Using a xwin.ini
file was just expedient. The proper thing would be to do a ~/.xwinrc file
format, and not use .icos but XPMs. Now that the ugly X server parts are
there I figure its easier for someone to put on the finishing touches...
-Earle F. Philhower, III
earle@ziplabel.com
cdrlabel - ZipLabel - FlpLabel
http://www.cdrlabel.com