[PATCH] wmaker: fix client repositioning on frame moves
Skip to first unread message
david.m...@gmail.com
unread,
Mar 29, 2026, 10:26:49 AM (8 days ago) Mar 29
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to Window Maker Development
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. --- src/window.c | 8 ++++++++ src/wmspec.c | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/src/window.c b/src/window.c index 6e80dd68..9cb11882 100644 --- a/src/window.c +++ b/src/window.c @@ -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);
diff --git a/src/wmspec.c b/src/wmspec.c index 4af9ab13..2621200b 100644 --- a/src/wmspec.c +++ b/src/wmspec.c @@ -1524,7 +1524,7 @@ void wNETWMCheckClientHints(WWindow *wwin, int *layer, int *workspace) *workspace = desktop; }