Re: _NET_WORKAREA and dual head



I think that there are advantages to having the avoid rectangles fixed
to a screen edge.  It doesn't really mean much to have an avoided window
in the middle of the screen.  The other advantage is that with struts
metacity knows that with a bottom strut it should push windows up, with
a right strut left, etc.  The constraint satisfaction problem becomes
much more complicated if you just have rectangles with no "orientation".

Non-rectangular areas are doable (metacity handles this) but regions
with genus 1 or higher start to get really weird.

Though I suppose an application drawing desktop icons would be able to
handle this situation fairly easily if it looked directly at the avoided
regions hints.

I think that a rather simple extension to _STRUT_PARTIAL, though, would
be the easiest solution.  We could add a xinerama number to the hint
specifying that it should apply to just one xinerama.  This would mean
that existing WMs would have to be changed very little to achieve
essentially the same effect.  The only loss would be the ability to set
a "reserved area" in the middle of the screen, which I think is really
not a loss at all.

-Rob

On Fri, 2004-03-12 at 19:20 +0100, Lubos Lunak wrote:
>  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.





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