Decorated windows were getting the size of the window including the
shadow which is correct, but causing some confusion for motion input
events. This was exhibited when one xwayland window overlaps another,
hovering over the window beneath recieves no events if within the 32
pixel shadow border area of the window above.
---
 xwayland/window-manager.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/xwayland/window-manager.c b/xwayland/window-manager.c
index 1663ad0..951a7cf 100644
--- a/xwayland/window-manager.c
+++ b/xwayland/window-manager.c
@@ -954,6 +954,8 @@ static void
 weston_wm_window_create_frame(struct weston_wm_window *window)
 {
        struct weston_wm *wm = window->wm;
+       struct theme *t = window->wm->theme;
+       xcb_rectangle_t rect;
        uint32_t values[3];
        int x, y, width, height;
        int buttons = FRAME_BUTTON_CLOSE;
@@ -1009,6 +1011,15 @@ weston_wm_window_create_frame(struct weston_wm_window 
*window)
                                                             &wm->format_rgba,
                                                             width, height);
 
+       rect.x = t->margin;
+       rect.y = t->margin;
+       rect.width = width - t->margin * 2;
+       rect.height = height - t->margin * 2;
+
+       xcb_shape_rectangles(wm->conn,
+                                               XCB_SHAPE_SO_SET, 
XCB_SHAPE_SK_INPUT,
+                                               0, window->frame_id, 0, 0, 1, 
&rect);
+
        hash_table_insert(wm->window_hash, window->frame_id, window);
 }
 
-- 
2.7.4

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to