This fixes grabs on InputOnly windows whose parent is the root window failing with GrabNotViewable. This is due to window->borderSize/windowSize being computed as clipped by its parent, resulting in a null region.
Setting up the right size on the root window makes the InputOnly size correct too, so the GrabNotViewable paths aren't hit anymore. Signed-off-by: Carlos Garnacho <[email protected]> --- hw/xwayland/xwayland-output.c | 3 +++ hw/xwayland/xwayland.c | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/hw/xwayland/xwayland-output.c b/hw/xwayland/xwayland-output.c index ef3b6f6..257055d 100644 --- a/hw/xwayland/xwayland-output.c +++ b/hw/xwayland/xwayland-output.c @@ -177,8 +177,11 @@ update_screen_size(struct xwl_output *xwl_output, int width, int height) SetRootClip(xwl_screen->screen, xwl_screen->root_clip_mode); if (xwl_screen->screen->root) { + BoxRec box = { 0, 0, width, height }; + xwl_screen->screen->root->drawable.width = width; xwl_screen->screen->root->drawable.height = height; + RegionReset(&xwl_screen->screen->root->winSize, &box); RRScreenSizeNotify(xwl_screen->screen); } diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c index 66b2089..6a6f8f8 100644 --- a/hw/xwayland/xwayland.c +++ b/hw/xwayland/xwayland.c @@ -313,9 +313,11 @@ xwl_realize_window(WindowPtr window) screen->RealizeWindow = xwl_realize_window; if (xwl_screen->rootless && !window->parent) { + BoxRec box = { 0, 0, xwl_screen->width, xwl_screen->height }; + + RegionReset(&window->winSize, &box); RegionNull(&window->clipList); RegionNull(&window->borderClip); - RegionNull(&window->winSize); } if (xwl_screen->rootless) { -- 2.9.3 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
