[xwm] Jump in size with interactive resize on X11 with CSD windows
Starting an interactive resize on an X11 CSD window causes a jump in size.
Steps to reproduce:
-
Run gtk3-demo under X11/Xwayland:
$ GDK_BACKEND=x11 gtk3-demo
-
Resize the window from one of its edges
Actual result:
- There is a jump in the window size which grows of several pixels all at once leaving the pointer far inside the surface
Expected result:
- The window size follows the pointer position giving a continuous resize.
Additional information:
Client side decorations under X11 is achieved by setting the Motif WM hints to set no decorations from the X11 window manager.
Then interactive resize with CSD uses the _NET_WM_MOVERESIZE
protocol, which is handled in weston XWM in weston_wm_window_handle_moveresize()
.
IIUC, that should end up in desktop-shell/shell.c surface_resize()
which gets the surface geometry and resize according to the surface geometry.
However, the surface is actually larger than the window with CSD (due to the drop shadow being part of the client side decorations), so I reckon this is what causes the jump in size.