xcb_configure_window
Steven J Abner
pheonix.sja at att.net
Wed Apr 23 15:03:07 UTC 2025
Stuck on moving a window. How do you get a window to move pass edges
of display. I know WMs know how do it, but issue occurs when WM
supports Extended Window Manager Hints, but really doesn't. And code
can get b-ugly just trying to support 2 WMs.
Simplest example is (of non-ability):
uint32_t values[2];
values[0] = (iface[0].mete_box.x = -100);
values[1] = iface[0].mete_box.y;
xcb_configure_window(connection, iface[0].window,
XCB_CONFIG_WINDOW_X | XCB_CONFIG_WINDOW_Y, values);
or
XMoveWindow(display, iface[0].window, -100, iface[0].mete_box.y);
XFlush(display);
These are with WM creating decorated windows. The full blown problem
was creating a headerbar that moves window. Compiz _NET_WM_MOVERESIZE
does a fantastic job, but GNOME's is just an alias for grab_pointer(),
with extra step of dumping passive so it can regrab. My version (an
application, not trying to be WM) is a simple, or less coded version of
getting GNOME's _NET_WM_MOVERESIZE to work, just uses passive grab. But
I can't move on either WMs pass what my guess are 'WM_STRUT's?
FWIW, I tried to browse WM code. Compiz doesn't set any special X
attributes and GNOME in gdk3 used Mutter? properties and looks like
dumped those in gdk4 for gtk properties.
Steve
More information about the Xcb
mailing list