>> Sorry for the dumb question, but is there anyone who can give me >> a hint on where to start for making this fix an optional window >> attribute (and: how to access this information where the >> _NET_ACTIVE_WINDOW event is handled)? > > I don't know too. But I would start by searching how another > property from the Attributes menu is handled. I chose the > "Disable resize bar", so I grep'ed for resizebar and > among the results I found things like: > > WSETUFLAG(wwin, no_resizebar, 1); > > which is probably that option. So the idea would be to mimic > that thing. > > Grepping a bit more I found this kind of thing > > if (HAS_RESIZEBAR(wwin)) > > in a few places, where the macro checks the no_resizebar option. > > So perhaps in that line that your patch modified you could stick > something similar? > > I still don't understand how in the end that works in a > application by application level, but hey, there are always > things to learn. This is what makes this interesting. > > I only wish the day had 48 hours! >
Well basically each window is associated with a set of attributes, these attributes are stored in a proplist file called WMWindowAttributes. The window is matched against its WM_CLASS (class and/or name). Have a peek in winspector.c thats the file where most of the code for the little "Attributes windows" is. >Pagers are a non-issue for wmaker. And the page says: > >"Depending on the information provided with the message, >the Window Manager may decide to refuse the request (either >completely ignore it, or e.g. use _NET_WM_STATE_DEMANDS_ATTENTION)." > >so ignoring it does not break any standard, AFAICS. We are completely >ignoring it _if_ it happens in another workspace. Pagers are not a non-issue for wmaker just because there are no pagers included in wmaker, some users might wanna use stand alone pagers with wmaker. Another problem is that wmaker dose not implement _NET_WM_STATE_DEMANDS_ATTENTION. What im saying is that the patch should be a little bit smarter in what it do: _NET_ACTIVE_WINDOW window = window to activate message_type = _NET_ACTIVE_WINDOW format = 32 data.l[0] = source indication data.l[1] = timestamp data.l[2] = requestor's currently active window, 0 if none other data.l[] elements = 0 Like for example take a peek at the source there, if its a 2 then the message came from a pager, so it should not be ignored. If its a 1 then it came from an application, like firefox or pidigin, therefore some users might wanna ignore it. If it is a 0 we dont know where it came from, so we make up some rule about it... -- To unsubscribe, send mail to [email protected].
