wayland: Implement the wl_pointer_gesture_swipe interface

The swipe gesture resources are part of the MetaWaylandPointerClient, which
will be used during the emission of CLUTTER_TOUCHPAD_SWIPE events.
This commit is contained in:
Carlos Garnacho
2015-07-22 16:43:25 +02:00
parent e11feb229b
commit 51a2f28723
6 changed files with 212 additions and 1 deletions

View File

@ -65,6 +65,7 @@ meta_wayland_pointer_client_new (void)
pointer_client = g_slice_new0 (MetaWaylandPointerClient);
wl_list_init (&pointer_client->pointer_resources);
wl_list_init (&pointer_client->swipe_gesture_resources);
return pointer_client;
}
@ -83,6 +84,11 @@ meta_wayland_pointer_client_free (MetaWaylandPointerClient *pointer_client)
wl_list_remove (wl_resource_get_link (resource));
wl_list_init (wl_resource_get_link (resource));
}
wl_resource_for_each (resource, &pointer_client->swipe_gesture_resources)
{
wl_list_remove (wl_resource_get_link (resource));
wl_list_init (wl_resource_get_link (resource));
}
g_slice_free (MetaWaylandPointerClient, pointer_client);
}
@ -90,7 +96,8 @@ meta_wayland_pointer_client_free (MetaWaylandPointerClient *pointer_client)
static gboolean
meta_wayland_pointer_client_is_empty (MetaWaylandPointerClient *pointer_client)
{
return wl_list_empty (&pointer_client->pointer_resources);
return (wl_list_empty (&pointer_client->pointer_resources) &&
wl_list_empty (&pointer_client->swipe_gesture_resources));
}
MetaWaylandPointerClient *
@ -535,6 +542,10 @@ meta_wayland_pointer_handle_event (MetaWaylandPointer *pointer,
handle_scroll_event (pointer, event);
break;
case CLUTTER_TOUCHPAD_SWIPE:
meta_wayland_pointer_gesture_swipe_handle_event (pointer, event);
break;
default:
break;
}