Re: _NET_WM_STRUT and corner panels



> Havoc Pennington wrote:
> > The _NET_WM_STRUT spec is really inadequate for "corner" panels; in
> > these cases, you really want to simply avoid the area covered by the
> > panel.
> >
> > For example, Nautilus uses the struts to avoid putting icons
> > underneath the panel. But if you have a corner panel it comes out
> > all wrong:
>
> A better type of strut would specify a rectangle (in the co-ordinates of
> the window on which the hint was set) that the WM should avoid covering.
> A non-hiding panel would set the strut to cover the entire window, and
> an auto-hiding panel would set the strut to cover the part of the window
> that remained visible.
>
> The WM might choose to ignore struts that were not touching a screen
> edge when calculating the work area. The work area could be a single
> rectangle or a list of rectangles (allowing icons to flow round corner
> panels, etc).
>
> I proposed this idea when struts were first discussed... I think Sasha
> Vasko agreed with me... but it never made it into the spec.  ;-p

Yes. If we want to specify rectangle - it has to be in client's
coordinates, due to the frame decoration confusions.

DO_NOT_COVER or AVOID_COVER is another viable approach, althou, less
flexible.

Perhaps we could use combination of these. For example if app desires to
limit area - it can provide rectangle with the property, otherwise it just
sets the hint and WM will automagically avoid covering its entire frame/
or entire client window.

That might be usefull when you want to avoid covering your entire window,
and you don't want to track its size, and update property when its resized.
Just set it once and forget about it, let window manager worry.

>
> Michael

Cheers
Sasha





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