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.
This commit is contained in:
		| @ -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: | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Rob Bradford
					Rob Bradford