When a window is maximized so it fills the whole screen, its top border is still shown. The top border in this state is useless though, since it cannot be dragged to resize the maximized window. So it just wastes space.
For most xfwm4 styles/themes this doesn't actually look too bad. But with a theme with relatively thick window borders it can look quite ugly. To see what I mean, change the window manager style to "Mofit" then maximize a window.
I might have found the cause of the problem.
In src/frame.c, the frameTop() definition does not have similar checks for CLIENT_FLAG_MAXIMIZED as the frameLeft(), frameRight() and frameBottom() functions.
Should the frameTop() function be changed to read something like this?
frameTop (Client * c)
TRACE ("entering frameTop");
g_return_val_if_fail (c != NULL, 0);
if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_BORDER)
&& !FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN)
&& (!FLAG_TEST_ALL (c->flags, CLIENT_FLAG_MAXIMIZED) // This condition added
|| !(c->screen_info->params->borderless_maximize))) // This condition added
Removing the top border when maximized would break most themes, not something I would like just for a few themes such as the Motif like theme.
Not something I would fix.
I’ve managed to implement this feature without breaking old themes.
look at #9905
See #9905 for work on this and patches, resolving this one as duplicate
*** This bug has been marked as a duplicate of bug 9905 ***