[PATCH xwayland 4/7] xwayland: Update root window size when desktop size changes
Carlos Garnacho
carlosg at gnome.org
Sat Nov 12 16:25:19 UTC 2016
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 <carlosg at gnome.org>
---
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
More information about the xorg-devel
mailing list