>> 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].

Reply via email to