Re: Partial width struts
- From: Mark McLoughlin <mark skynet ie>
- To: Rob Adams <robadams ucla edu>
- Cc: wm-spec-list gnome org
- Subject: Re: Partial width struts
- Date: 11 Jun 2003 11:11:38 +0100
Looks great to me apart from a couple of very minor comments below.
> + <programlisting id="NETWMSTRUTPARTIAL"><![CDATA[
> +_NET_WM_STRUT_PARTIAL, left, right, top, bottom, left_start_y, left_end_y,
> +right_start_y, right_end_y, top_start_x, top_end_x, bottom_start_x,
> + <para>
> This property MUST be set by the Client if the window is to reserve space at
> the edge of the screen. The property contains 4 cardinals specifying the
> width of the reserved area at each border of the screen.
You haven't updated the text to reflect that we now have 12 cardinals.
Actually, now that I think about it. That's going to be 9 zeros in any
case I can think of, which is a bit of jump in wasted space. How about
something like this:
_NET_WM_STRUT, border, width, start, end, CARDINAL/32
#define _NET_WM_STRUT_BORDER_LEFT 0
#define _NET_WM_STRUT_BORDER_RIGHT 1
#define _NET_WM_STRUT_BORDER_TOP 2
#define _NET_WM_STRUT_BORDER_BOTTOM 3
So that the property only specifies a single strut. I think that makes
sense - are there any use cases for more than one strut ?
> + <para>
> +The purpose of struts is to reserve space at the borders of the
> +desktop. This is very useful for a docking area, a taskbar or a
> +panel, for instance. The Window Manager should know about this
> +reserved space in order to be able to reserve the space. Also
> +maximized windows should not cover that reserved space. The various
> +start and end values tell the window manager the extent of the strut
> +so that struts can have a width covering only part of the screen. All
> +struts are relative to the edges of the logical screen, and not to the
> +edges of any view port or Xinerama monitor.
> + </para>
This whole para sounds a little strange now - what sounded distinctly
odd to me was the "should know about this reserved space in order to be
able to reserve the space". The original para said "preserve" the space.
Anyway, how about something like this:
The purpose of struts is to reserve space at the borders of the
desktop. This is very useful for a docking area, a taskbar or a panel,
for instance. The Window Manager should take this reserved area into
account when constraining window positions - maximized windows, for
example, should not cover that area.
The start and end values associated with each strut allow areas to be
reserved which do not span the entire width or height of the screen.
Struts MUST be specified relative to the edges of the logical screen,
and not to the edges of any view port or Xinerama monitor.
> + <para>
> +For example, for a panel-style Client appearing at the bottom of the
> +screen, 50 pixels tall, and occupying the space from 200-600 pixels
> +from the left of the screen edge would set a bottom strut of 50, and
> +set bottom_start_x to 200 and bottom_end_x to 600. Another example is
> +a panel occupying the entire screen area on a screen using the
> +Xinerama extension. Assume that the set up uses two monitors, one
> +running at 1280x1024 and the other running at 1024x768, with the top
> +edge of the two physical displays aligned. If the panel wants to fill
> +the entire bottom edge of the smaller display with a panel 50 pixels
> +tall, it should set a bottom strut of 306, with bottom_start_x of
> +1280, and bottom_end_x of 2303. Note that the strut is relative to
> +the screen edge, and not the edge of the xinerama.
Uggh. What fun :-)
Seriously, perhaps you should split the two examples and give a little
ascii art diagram ?
] [Thread Prev