Sample Header Ad - 728x90

Window move bound to display area

0 votes
0 answers
45 views
Trying to move a window by grip-able button. On 2 other window managers, and no manager it works fine. Windows move anywhere you want pass display edge bounds. On GNOME Shell and Mutter(Gala) the window is confined to the desktop view with no part of it allowed past display edges. On Compiz I use _NET_WM_MOVERESIZE, other 2 are grab_pointer. The mutter variants won't work using _NET_WM_MOVERESIZE which is fine, but I can't figure out what property to set on the window to allow normal configure messages to get past display limits. Hint as to which it is would be appreciated, kinda would like to support the variant. Need a window_property_set or client message to root to be able to use configure_window. Using code:
#if USE_XLIB
  XMoveWindow(display, motion->event, values, values);
#else
  xcb_configure_window(session->connection, motion->event,
               XCB_CONFIG_WINDOW_X | XCB_CONFIG_WINDOW_Y, values);
#endif
This will only allow movement to the confines of 'maximize' window display. Moving left, negative x values get converted by GNOME to 0. Moving toward bottom, any value greater than window.y + window.height gets converted to display height - taskbar height - window height by GNOME. Verified by values received on configure notify. Do I need to delete a _NET_WM_STRUT property on my window or root window to use? Looking at gdk3 code they use the Xlib variant of code. **Solved**\ Problem is issue that GNOME only supports move of window correctly through their toolkit. It appears to lack proper support of both EWMH and ICCCM. Workaround is to use override-redirect, taking away its ability to mess with configure message.
Asked by user748603 (1 rep)
May 29, 2025, 09:40 PM
Last activity: May 31, 2025, 10:13 PM