Re: _NET_WORKAREA and dual head



Dne pá 12. března 2004 18:31 Rob Adams napsal(a):
> On Fri, 2004-03-12 at 11:25 -0600, Billy Biggs wrote:
> >   I'm sorry, I thought that _NET_WM_STRUT was deprecated in favour of
> > _NET_WM_STRUT_PARTIAL.  Furthermore, I thought metacity at least by
> > looking at it has these get_work_area_xinerama calls which on first pass
> > seemed to be built to handle these cases.  It shouldn't be any more
> > difficult than maximize logic with a panel on just one head.
>
> That's true, but _STRUT_PARTIAL has many of the same difficulties as
> _STRUT.  The property defines a rectangle that extends to the edge of
> the root window -- there is no way to specify internal struts.  As I
> said, I think that an extension to support this would be nice.
>
> In metacity, implementing such a property based on the current code
> would be quite trivial.  But as I've said, the property does not yet
> exist -- it would require modifying the specification.

 Perhaps we should drop the _STRUT_PARTIAL hint (as it hasn't been part of any 
official spec release anyway), and go with _NET_WM_RESERVE_AREA or similar? 
And _NET_WORKAREA would have to be extended (or deprecated in favour of 
another hint) to provide a list of workareas per every screen (or maybe it 
could be deprecated in favour of making desktop icons apps find out the 
available areas from the hints themselves, but that's probably too much).

 I checked the archives, and the spec apparently uses this struts concept 
instead of the more intuitive DO_NOT_COVER only because of autohiding panels 
(http://mail.gnome.org/archives/wm-spec-list/1999-October/msg00007.html). 
However, if we define the hint not to say "don't cover this window" but 
instead "don't cover this area", and the area will be given in the hint, then 
I see struts as the inferior concept. Autohiding panels will simply specify 
the smaller area in the hint.

 Clearly, this could get complicated if one specifies area in the middle of 
the screen. But IMHO it'd be acceptable to say that's it's fine if WMs simply 
the workarea to be the smallest rectangular area that doesn't intersect any 
of the do-not-cover areas. Xinerama-capable WMs will of course do this 
per-screen, and the most crazy^H^H^Hadvanced WMs can try to handle even 
non-rectangular areas.

 Comments?

-- 
 Lubos Lunak
 KDE Developer



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