[repo.or.cz] wmaker-crm.git branch master updated: wmaker-0.96.0-89-gac1fa7fc6d5f

1 view
Skip to first unread message

crmafra

unread,
Mar 29, 2026, 3:06:03 PM (8 days ago) Mar 29
to wmake...@googlegroups.com
This is an automated email generated because a ref change occurred in the
git repository for project wmaker-crm.git.

The branch, master has been updated
via ac1fa7fc6d5ffacc4521802d9e73bb93a2c17c85 (commit)
from 1f03c13f4d3c6e35469b608cac5c6616c4ca1ee7 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit ac1fa7fc6d5ffacc4521802d9e73bb93a2c17c85
Author: David Maciejak <david.m...@gmail.com>
Date: Sun, 29 Mar 2026 10:18:56 -0400
URL: <https://repo.or.cz/wmaker-crm.git/ac1fa7fc6d5ffacc>

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.
---
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 6e80dd685ab9..9cb1188219e6 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 4af9ab1335ff..2621200bbe0b 100644
--- a/src/wmspec.c
+++ b/src/wmspec.c
@@ -1524,7 +1524,7 @@ void wNETWMCheckClientHints(WWindow *wwin, int *layer, int *workspace)
*workspace = desktop;
}

- if (XGetWindowProperty(dpy, wwin->client_win, net_wm_state, 0, 1, False,
+ if (XGetWindowProperty(dpy, wwin->client_win, net_wm_state, 0, 1024L, False,
XA_ATOM, &type_ret, &fmt_ret, &nitems_ret,
&bytes_after_ret, (unsigned char **)&data) == Success && data) {


-----------------------------------------------------------------------

Summary of changes:
src/window.c | 8 ++++++++
src/wmspec.c | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)


repo.or.cz automatic notification. Contact project admin crm...@gmail.com
if you want to unsubscribe, or site admin ad...@repo.or.cz if you receive
no reply.
--
wmaker-crm.git ("The Window Maker window manager")
Reply all
Reply to author
Forward
0 new messages