On Thu, Jan 12, 2023 at 08:36:57PM +0100 I heard the voice of
Rhialto, and lo! it spake thus:
> 
> Then at the mentioned location in add_window.c, ctwm could use
> Scr->Layout instead of Scr->BorderedLayout for these windows.

Except BorderedLayout is really to handle things like BorderTop etc,
and only incidentally has strut stuff applied onto it.  Now, whether
we should even support that sorta config in the first place...  but
who dares even look under _that_ rock?

Certainly at the least windows should ignore their own struts; failing
to do that is completely nonsense.  Whether they should ignore other
struts, that seems a lot less clear; if somebody's actually using
things that do such things, it seems like either it doesn't matter, or
really bad things would happen as soon as there's a conflict.  Bleh.

But at any rate, just blatting them on top of the existing Border'ing
stuff seems like a mess.  So it seems like to really handle them, we'd
have to be doing the struts as their own thing as part of constraining
sizing and moving, on top of the Border handling.  In a little aimless
poking at the things currently using BorderedLayout, it looks like
that's a fair sized task (especially since, for the exclusions, we
need to keep track of and compare the windows in question, and not
every place has that information at hand).


My gut feeling is that's a decently nontrivial project with a lot of
thinking and edge cases to handle along the way, as well as touching a
lot of code.  Seems like it'd push 4.1 back a fair bit at this point.
Releasing broken code isn't fun, but...  what're our choices for at
least coming out with something not broken in new ways vs. 4.0.3?  I
guess there are two things we could do quickly and confidently.

a) roughly what you said above; use Layout instead of BorderedLayout
   for strutty windows.  That's broken and wrong, but it's at least
   consistent with how 4.0.3 would have been wrong.

2) Disclaim strut support and ignore the properties.  Then strutty
   windows will at least be obeying Border stuff, but things won't get
   strutted.

And of course there's

iii) Do gate the release on properly fixing strutification, which
     means having rejiggered a fair bit of code along the way.


That's all that pops to my mind, or at least it's all the ways to
misconjugate a verbified strut I can think of...


-- 
Matthew Fuller     (MF4839)   |  fulle...@over-yonder.net
Systems/Network Administrator |  http://www.over-yonder.net/~fullermd/
           On the Internet, nobody can hear you scream.

Reply via email to