Re: _NET_ACTIVE_WINDOW, revisited



Hi,

Sorry, part of my previous proposal & wording were due to me
forgetting entirely about the source indication field that already
exists (I was worried about distinguishing between pager and
application requests for activation, as I'd like to treat them
slightly different in regards to showing desktop, stacking, and
transients)

> > >  How would we define the behaviour of 2? I normal words I'd describe it
> > > as "leave the window as it is if possible", but that's no spec talk :).
> > > I.e. I think the functionality should be "make everything else come to
> > > the window", as opposed to yours "make the window come to the user" for
> > > 1.
> >
> > I'm worried that if we define it in terms of behavior then instead of
> > just having pagers use it we'll have apps start using it just to be
> > different and causing inconsistencies.
> 
> That's why I said "in normal words". The problem is, your description of the
> functionality doesn't mean anything to me. "A request from workspace-aware
> pager" ... aha. I don't really know what to do actually do with that, I even
> don't see the difference between 2 and 3.
> 
> Also, now that I think of it, "make everything come to the window" actually
> conflicts with what you want your taskbar to do. Although, perhaps it
> actually should specify the behaviour. I want KDE's taskbar to always act the
> same regardless of what you Metacity developers think.

Then we'll have to make the spec spell out a whole lot more than just
what to do with workspaces (raising, showing desktop, viewports,
shading, transients/siblings/ancestors, etc.).  ;-)

> It's the taskbar's decision what clicking the taskbar entry will do

I think that's what I was disagreeing with.  The only way to
completely get that is to specify what _NET_ACTIVE_WINDOW does in
detail when the request comes from a pager.  So, whenever anyone wants
to make a slightly different policy, then we have to add a new value
with a really long description of the exact details that come with it.
 Further, if anyone comes up with some new cool UI design element that
we want to use, then our spec is suddenly underspecified and if people
make conflicting choices then we have to deprecate all the old ones
and make new ones with more detailed policy requirements.  I think the
list of policies we'd need to specify is just too long.

However, I'm guessing that you only really want to specify part of the
behavior, and even then in a somewhat semantic kind of way (i.e. not
mentioning workspaces but just worded so that it's clear how to handle
it and gives the behavior you want).  Something like "pager request to
activate the window where it is" and "pager request to activate the
window by bringing it to the user".  That sounds fine to me.

> , we just want to have to use
> only a single _NET_ACTIVE_WINDOW to avoid some problems like having another
> window activated if _NET_WM_DESKTOP + _NET_ACTIVE_WINDOW combo is used. For
> your taskbar-moves-the-window-to-the-current window, your taskbar could
> actually use 1, so your taskbar would have the "make the window come to the
> user".
> 
>  So I actually think having 0 - legacy, 1 - "make window come", 2 - "make
> everything come to window" should be enough. And perhaps one more, given that
> you see a difference between your 2 and 3 below.

The 2 and 3 thing was more because I forgot about the source
indication field and wanted to differentiate between application and
pager requests...  Anyway, this looks like it works, but I'm kind of
worried because it means apps should choose between 1 and 2--and I'm
totally going to ignore what they pick because I think apps should
only be specifying "do what's necessary to activate me", not
specifying how the activation takes place.  Is there any chance we use
the source indication field to handle this extension?  I.e:

0 - legacy window or pager
1 - request from an application to activate the given window
2 - legacy pager
3 - request from pager to activate the given window by bringing it to the user
4 - request from pager to activate the given window by bringing the user to it

I think that'd provide what you want (pager hints about how
window/user move relative to each other), and would also cover what I
want (can differentiate between apps and the two kinds of pager
requests).

Thoughts?



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]