waylandsink : Allow surface to catch input events
authorTifaine Inguere <tifaine.inguere@st.com>
Thu, 24 Jul 2014 14:53:53 +0000 (16:53 +0200)
committerGeorge Kiagiadakis <george.kiagiadakis@collabora.com>
Sat, 11 Oct 2014 15:18:29 +0000 (17:18 +0200)
If waylandsink is the owner of the display then it is in charge
of catching input events on the surface.

https://bugzilla.gnome.org/show_bug.cgi?id=733682

Signed-off-by: Tifaine Inguere <tifaine.inguere@st.com>
Reviewed-by: Benjamin Gaignard <benjamin.gaignard@linaro.org>
ext/wayland/wlwindow.c

index a4da2c6..ab7edda 100644 (file)
@@ -252,6 +252,15 @@ gst_wl_window_resize_video_surface (GstWlWindow * window, gboolean commit)
     wl_surface_commit (window->video_surface);
   }
 
+  if (gst_wl_window_is_toplevel (window)) {
+    struct wl_region *region;
+
+    region = wl_compositor_create_region (window->display->compositor);
+    wl_region_add(region, 0, 0, window->render_rectangle.w, window->render_rectangle.h);
+    wl_surface_set_input_region (window->area_surface, region);
+    wl_region_destroy (region);
+  }
+
   /* this is saved for use in wl_surface_damage */
   window->surface_width = res.w;
   window->surface_height = res.h;