On Thu, 17 Nov 2005, David Tweed wrote:
<snip>
In any piece of software, there's always a trade-off between how you envisage
the program working in an ideal world and how much you change to fit the
norm/standard/current expectations. Since I'm primarily writing the program
because I want to use it (although it is LGPL in the hope others may find it
useful), I'm happy to make the deliberate choice to restrict things if it
results in something that works.
Basically, what I'm trying to acheive is the sort of thing you get in an IDE,
but without doing the "pseudo-window drawing/management myself" as part of my
application's main window but rather leaving that to a proper, fully-fledged
window manager. I can understand Tuomo's concern that facilities like
_NET_ACTIVE_WINDOW can be used without any real thought by people writing
applications, and thus in actuality they tend to be "abused". In my
application, the "make yourself visible" always occurs after a user action
that is asking for more information, so it's fairly core to the application
and the user is essentially asking for any raises that occur, they're just
asking the application in a combined request to do several things (figure out
which window, move cursor to correct spot, make window visible in some
suitable frame) which includes the raise element which the app "forwards" to
requests onto the WM, rather than using a WM keybinding to ask the WM
directly.
And Tuomo is largely right that things like _NET_ACTIVE_WINDOW get
abused rather quickly, and I fully support ion3 having the ability to
ignore the request (since as it is a request ignoring it is perfectly
valid). I'm not sure I would have made ignore the default action but
it's not my wm, I also have a patch which I should really send to Tuomo
which makes the client "active" when the request is ignored (since even
when I'm ignoring the action I'd like to know it requested it).
And as Tuomo indicated, you can specify per winprop whether to ignore
the request or not, so if you honor it for your application it will work
as you want.
What you could do though, is request that ion3 have an active_window_hook
which would let you write an ion script which when it received a
_NET_ACTIVE_WINDOW request checked if the frame the window was in was the
current one and did something intelligent. (That's probably not exactly
what you were wanting to hear but it's at least something.)
That's an interesting approach; I'll have a look & see how easy it is to hack
the Ion3 code to experiment.
Many thanks,
It should be pretty easy to add the hook for this, deciding what exaclty
the hook should be is going to be one of the more difficult parts (i.e.
how generic/specific it should be). Email or drop into the irc channel
if you need help or want ideas about doing this.
-Etan