Quoth Carlos R. Mafra,
I guess that people using xinerama might be annoyed if the panel
on one screen makes the corresponding space on the other screen
unusable too.

  I believe that each head has its own reserved space.  If the panel
is in one head it shouldn't take up space on another head.

Having proper _NET_WM_STRUT_PARTIAL could be actually very cool if
wmaker's dock used it in order to tell windows which space it
actually occupies.

  The dock has its own code path and its own preference to toggle
whether or not it can be covered.  Both aspects could be handled with
struts, I suppose.

Right now I have a dock which does not occupy the whole right edge
of the screen. And yet, if I horizontally maximize a window placed
in a vertical position level where there is no more dock icons (ie
the space bellow the bottom dockapp) it does not completely
maximize horizontally.

  For the same reason that I labelled my patch as "partial" support.
Right now each head has its own usable area which is just a rectangle.
 Windows can place or maximise within that area.  When a window
declares a strut the area is shrunk so that it no longer intersects
the strut.

  That's guaranteed to work because the struts must be placed along
edges.  It's also good enough most of the time.  In your example it
may look "wrong" that the horizontally maximised window doesn't extend
to the edge of the screen but you'll be grateful that it doesn't if
you add more icons to your dock. And my XFCE panel can also grow to
accommodate more widgets.

  Still it could be worth doing for the benefit of people with large
screens and small docks.

Have you thought about how much more work would be required to
make wmaker respect the full partial strut specification?

  I did think about it while working on the struts.

  To support them, and handle your partially-populated
dock, we'd need to change how the reserved space works.  Rather than
have one placeable rectangle we'd have to find the best area which
avoids all struts on the head.  Perhaps we can borrow some logic from
one of the window managers which already supports them.

  When maximising we'd have to check if the chosen size intersects a
strut and shrink it if so.  Somewhat like how Maximusize picks the
biggest area it can find and shrinks it until it no longer conflicts
with other windows.


--
To unsubscribe, send mail to [email protected].

Reply via email to