On 27 Jul 2010, at 1:03, Kris Maglione wrote:
On Tue, Jul 27, 2010 at 12:53:12AM +0100, Ethan Grammatikidis wrote:
On 26 Jul 2010, at 11:48, Rob wrote:
There is something that make me sad with dwm, there is a lack of
role
rules for clients. I explain : clients have instance and name using
WM_CLASS, but there is also WM_WINDOW_ROLE which is really
important
and useful.
Pardon me for ranting, but WM_WINDOW_ROLE looks like nothing more
than brain-damage from freedesktop.org monks who had to "reason"
away perfectly sound usage of WM_CLASS. I'm upset because this
broke a window manager I got on with rather well, but I honestly
wonder how close the reasoning behind this issue is to that of the
12th-century monks who wrote down, as a factual example for human
life, that a badger when pursued by dogs would bite it's own balls
off because it knew that's what the dogs were really after!
You would do well to indulge in some cursory research before
opining. WM_WINDOW_ROLE predates the freedesktop project by quite a
long time and serves an entirely different purpose from WM_CLASS.
Nor could it be a freedesktop invention, since by policy they are
all prefixed with _NET_. WM_WINDOW_ROLE is an old part of ICCCM that
deals with session management, not window identification.
I guess I should have focussed my rant differently, but one thing
which does not predate fd.o is the practice of setting both class and
name (in WM_CLASS) to the same for every window in the application.
I'm fairly sure when this practice first caught my attention I looked
it up only to read a ridiculous mandate decreeing class and name
*must* be set the same (except for capitalisation) on every top-level
window of an application. I'm almost certain the same mandate decreed
WM_WINDOW_ROLE to be the thing to use to distinguish between different
windows of the same application. "Some cursory research" seems not to
be enough to find about anything how to use WM_CLASS etc, or at least
20 minutes of searching turned up nothing for me.
--
Kris Maglione
Deleted code is debugged code.
--Jeff Sickel