1
0
mirror of https://github.com/gryf/wmaker.git synced 2026-06-18 16:35:24 +02:00

wmaker: fix client repositioning on frame moves

This patch is preventing X server gravity adjustments from offsetting
the client windows esp when the gravity is non standard as seen
in openoffice with xprop: 'window gravity: Static'.
Also fixing _NET_WM_STATE property query request as in X11 it can
contain multiple atoms simultaneously, acting as an array.
This commit is contained in:
David Maciejak
2026-03-29 10:18:56 -04:00
committed by Carlos R. Mafra
parent 1f03c13f4d
commit ac1fa7fc6d
2 changed files with 9 additions and 1 deletions
+8
View File
@@ -2219,6 +2219,14 @@ void wWindowConfigure(WWindow *wwin, int req_x, int req_y, int req_width, int re
wFrameWindowConfigure(wwin->frame, req_x, req_y, req_width, h);
}
/*
* When the frame is resized/moved, the X server repositions a client
* with non-NorthWest gravity inside the frame to compensate (visible as
* a GravityNotify with xev), leaving it at the wrong offset.
*/
if (wwin->normal_hints->win_gravity != NorthWestGravity)
XMoveWindow(dpy, wwin->client_win, 0, wwin->frame->top_width);
if (!(req_height > wwin->frame->core->height || req_width > wwin->frame->core->width))
XResizeWindow(dpy, wwin->client_win, req_width, req_height);