Changed the input region of the menu popup window to exclude the shadow and 
border regions and set to frame's internal region only.

Regards,
blsd

---
 clients/window.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/clients/window.c b/clients/window.c
index b82a93e..9a6e8be 100644
--- a/clients/window.c
+++ b/clients/window.c
@@ -4615,7 +4615,8 @@ window_show_menu(struct display *display,
 {
        struct menu *menu;
        struct window *window;
-       int32_t ix, iy;
+    struct wl_region *input_region;
+    int32_t ix, iy, ih, iw;
 
        menu = create_menu(display, input, time, func, entries, count, parent);
 
@@ -4630,7 +4631,11 @@ window_show_menu(struct display *display,
        window->x = x;
        window->y = y;
 
-       frame_interior(menu->frame, &ix, &iy, NULL, NULL);
+    frame_interior(menu->frame, &ix, &iy, &iw, &ih);
+    input_region = wl_compositor_create_region(display->compositor);
+    wl_region_add(input_region, ix, iy, iw, ih);
+    wl_surface_set_input_region(window->main_surface->surface, input_region);
+    wl_region_destroy(input_region);
 
        window->xdg_popup = xdg_shell_get_xdg_popup(display->xdg_shell,
                                                    
window->main_surface->surface,
-- 
1.9.1

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

Reply via email to