[gtk+] wayland: Only try and process pointer events when focussed



commit 3625f17857328ae7e7aa43340f29efa56575a7b0
Author: Rob Bradford <rob linux intel com>
Date:   Sun Aug 4 14:01:10 2013 +0100

    wayland: Only try and process pointer events when focussed
    
    When combining Clutter with GTK+ we can receive events for surfaces which in
    the client side we do not have focussed.

 gdk/wayland/gdkdevice-wayland.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)
---
diff --git a/gdk/wayland/gdkdevice-wayland.c b/gdk/wayland/gdkdevice-wayland.c
index 7624fa1..862942c 100644
--- a/gdk/wayland/gdkdevice-wayland.c
+++ b/gdk/wayland/gdkdevice-wayland.c
@@ -645,6 +645,8 @@ pointer_handle_leave (void              *data,
     return;
   if (!GDK_IS_WINDOW (wl_surface_get_user_data (surface)))
     return;
+  if (!device->pointer_focus)
+    return;
 
   _gdk_wayland_display_update_serial (wayland_display, serial);
 
@@ -689,6 +691,9 @@ pointer_handle_motion (void              *data,
   GdkWaylandDisplay *display = GDK_WAYLAND_DISPLAY (device->display);
   GdkEvent *event;
 
+  if (!device->pointer_focus)
+    return;
+
   event = gdk_event_new (GDK_NOTHING);
 
   device->time = time;
@@ -729,6 +734,9 @@ pointer_handle_button (void              *data,
   GdkWaylandDisplay *wayland_display =
     GDK_WAYLAND_DISPLAY (device->display);
 
+  if (!device->pointer_focus)
+    return;
+
   _gdk_wayland_display_update_serial (wayland_display, serial);
 
   switch (button) {
@@ -784,6 +792,9 @@ pointer_handle_axis (void              *data,
   GdkEvent *event;
   gdouble delta_x, delta_y;
 
+  if (!device->pointer_focus)
+    return;
+
   /* get the delta and convert it into the expected range */
   switch (axis) {
   case WL_POINTER_AXIS_VERTICAL_SCROLL:


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]