Can STRUTS and DoNotCover coexist ?
- From: Sasha Vasko <sasha aftercode net>
- To: wm-spec-list gnome org
- Subject: Can STRUTS and DoNotCover coexist ?
- Date: Fri, 10 Oct 2003 12:55:27 -0500
Hi all
Sorry to put salt on old wounds, but there are some issues with using
STRUTS that just don't go away.
Don't get me wrong - I like STRUTS. It is a very good approach to handle
any panels that are adjacent to the screen edge, and by no means I
want to argue points brought forth by
http://mail.gnome.org/archives/wm-spec-list/1999-October/msg00007.html
Now, what I'd like to point out is the problem of panels/docks/taskbars
that are not placed at the edge of the screen. For example if user wants
to place kicker/dock/wharf/gpanel/whatever right in the middle of the
screen ? Not altogether impossible situation if one owns 21" monitor and
in fact does not use much more then bunch of terms opened up at the
same time, making maximization to full screen rather undesirable.
Besides that somewhat extreme situation, there are a plenty of reasons
for placing docks/panels sufficiently off the edge of the screen.
Additionally there is that issue of handling situation of several
panels/taskbars piled up on one side of the screen.
For all of the above it involves rather ugly hacks to use STRUTS to
achieve NoCover semantics, not to say, that sometimes its even
impossible. Which brings us back to questionable DoNotCover hint.
Its seems evident that something is needed to compliment STRUTS to cover
above mentioned situations. It was suggested long ago that we should
add DoNotCover hint , that when set, will cause window manager to avoid
placing other windows in entire area covered by the window. Valid
concerns here were that when something like that is used for AutoHide
panels - that will cause other windows moved/resized when panels
unhides. As the result STRUTS was accepted as better alternative.
Here is the idea - instead of proping STRUTS and DoNotCover against each
other - why don't we make them compliment each other? Apps that are
placed at the edge of the screen and/or using AutoHide should use
STRUTS, and those that are in the middle of the screen should use
DoNotCover.
Now there is another issue with DoNotCover hint. Thing is that
DoNotCover is somewhat implied for window types of _NET_WM_WINDOW_TYPE_DOCK
_NET_WM_WINDOW_TYPE_TOOLBAR
Therefore it is proposed that instead of adding new _NET_WM_STATE atom -
we should elaborate more on behaviour of this two types. Adding
something like that to the _NET_WM_WINDOW_TYPE section:
NET_WM_WINDOW_TYPE_DOCK,_NET_WM_WINDOW_TYPE_TOOLBAR both imply that
Window manager should use Do Not Cover policy for this windows:
1) avoid placing other windows in area occupied by windows with this
types.
2) whenever window of this type moves or changes its size - other
windows should be moved/resized to avoid occupying new area of the window.
3) if _NET_WM_STRUT or _NET_WM_STRUT_PARTIAL is set on the window of
one of this types - it takes precedence, and Do Not Cover policy will be
applied to the area specifyed by struts, instead of the whole area of
the window.
Sasha Vasko
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]