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