diff --git a/gdk/wayland/gdkdevice-wayland.c b/gdk/wayland/gdkdevice-wayland.c index 7624fa1b46..862942cae7 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: