wayland: Replace ClutterDeviceManager usage in favor of ClutterSeat
https://gitlab.gnome.org/GNOME/mutter/merge_requests/852
This commit is contained in:
parent
835f12043e
commit
6dfd2ffcef
7 changed files with 38 additions and 44 deletions
|
@ -499,7 +499,7 @@ meta_wayland_pointer_enable (MetaWaylandPointer *pointer)
|
||||||
{
|
{
|
||||||
MetaBackend *backend = meta_get_backend ();
|
MetaBackend *backend = meta_get_backend ();
|
||||||
MetaCursorTracker *cursor_tracker = meta_backend_get_cursor_tracker (backend);
|
MetaCursorTracker *cursor_tracker = meta_backend_get_cursor_tracker (backend);
|
||||||
ClutterDeviceManager *manager;
|
ClutterSeat *clutter_seat;
|
||||||
|
|
||||||
pointer->pointer_clients =
|
pointer->pointer_clients =
|
||||||
g_hash_table_new_full (NULL, NULL, NULL,
|
g_hash_table_new_full (NULL, NULL, NULL,
|
||||||
|
@ -507,8 +507,8 @@ meta_wayland_pointer_enable (MetaWaylandPointer *pointer)
|
||||||
|
|
||||||
pointer->cursor_surface = NULL;
|
pointer->cursor_surface = NULL;
|
||||||
|
|
||||||
manager = clutter_device_manager_get_default ();
|
clutter_seat = clutter_backend_get_default_seat (clutter_get_default_backend ());
|
||||||
pointer->device = clutter_device_manager_get_core_device (manager, CLUTTER_POINTER_DEVICE);
|
pointer->device = clutter_seat_get_pointer (clutter_seat);
|
||||||
|
|
||||||
g_signal_connect (cursor_tracker,
|
g_signal_connect (cursor_tracker,
|
||||||
"cursor-changed",
|
"cursor-changed",
|
||||||
|
|
|
@ -99,12 +99,12 @@ bind_seat (struct wl_client *client,
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint32_t
|
static uint32_t
|
||||||
lookup_device_capabilities (ClutterDeviceManager *device_manager)
|
lookup_device_capabilities (ClutterSeat *seat)
|
||||||
{
|
{
|
||||||
const GSList *devices, *l;
|
GList *devices, *l;
|
||||||
uint32_t capabilities = 0;
|
uint32_t capabilities = 0;
|
||||||
|
|
||||||
devices = clutter_device_manager_peek_devices (device_manager);
|
devices = clutter_seat_list_devices (seat);
|
||||||
|
|
||||||
for (l = devices; l; l = l->next)
|
for (l = devices; l; l = l->next)
|
||||||
{
|
{
|
||||||
|
@ -139,6 +139,8 @@ lookup_device_capabilities (ClutterDeviceManager *device_manager)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
g_list_free (devices);
|
||||||
|
|
||||||
return capabilities;
|
return capabilities;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -188,21 +190,21 @@ meta_wayland_seat_set_capabilities (MetaWaylandSeat *seat,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
meta_wayland_seat_update_capabilities (MetaWaylandSeat *seat,
|
meta_wayland_seat_update_capabilities (MetaWaylandSeat *seat,
|
||||||
ClutterDeviceManager *device_manager)
|
ClutterSeat *clutter_seat)
|
||||||
{
|
{
|
||||||
uint32_t capabilities;
|
uint32_t capabilities;
|
||||||
|
|
||||||
capabilities = lookup_device_capabilities (device_manager);
|
capabilities = lookup_device_capabilities (clutter_seat);
|
||||||
meta_wayland_seat_set_capabilities (seat, capabilities);
|
meta_wayland_seat_set_capabilities (seat, capabilities);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
meta_wayland_seat_devices_updated (ClutterDeviceManager *device_manager,
|
meta_wayland_seat_devices_updated (ClutterSeat *clutter_seat,
|
||||||
ClutterInputDevice *input_device,
|
ClutterInputDevice *input_device,
|
||||||
MetaWaylandSeat *seat)
|
MetaWaylandSeat *seat)
|
||||||
{
|
{
|
||||||
meta_wayland_seat_update_capabilities (seat, device_manager);
|
meta_wayland_seat_update_capabilities (seat, clutter_seat);
|
||||||
}
|
}
|
||||||
|
|
||||||
static MetaWaylandSeat *
|
static MetaWaylandSeat *
|
||||||
|
@ -210,7 +212,7 @@ meta_wayland_seat_new (MetaWaylandCompositor *compositor,
|
||||||
struct wl_display *display)
|
struct wl_display *display)
|
||||||
{
|
{
|
||||||
MetaWaylandSeat *seat = g_new0 (MetaWaylandSeat, 1);
|
MetaWaylandSeat *seat = g_new0 (MetaWaylandSeat, 1);
|
||||||
ClutterDeviceManager *device_manager;
|
ClutterSeat *clutter_seat;
|
||||||
|
|
||||||
wl_list_init (&seat->base_resource_list);
|
wl_list_init (&seat->base_resource_list);
|
||||||
seat->wl_display = display;
|
seat->wl_display = display;
|
||||||
|
@ -230,11 +232,11 @@ meta_wayland_seat_new (MetaWaylandCompositor *compositor,
|
||||||
|
|
||||||
meta_wayland_data_device_init (&seat->data_device);
|
meta_wayland_data_device_init (&seat->data_device);
|
||||||
|
|
||||||
device_manager = clutter_device_manager_get_default ();
|
clutter_seat = clutter_backend_get_default_seat (clutter_get_default_backend ());
|
||||||
meta_wayland_seat_update_capabilities (seat, device_manager);
|
meta_wayland_seat_update_capabilities (seat, clutter_seat);
|
||||||
g_signal_connect (device_manager, "device-added",
|
g_signal_connect (clutter_seat, "device-added",
|
||||||
G_CALLBACK (meta_wayland_seat_devices_updated), seat);
|
G_CALLBACK (meta_wayland_seat_devices_updated), seat);
|
||||||
g_signal_connect (device_manager, "device-removed",
|
g_signal_connect (clutter_seat, "device-removed",
|
||||||
G_CALLBACK (meta_wayland_seat_devices_updated), seat);
|
G_CALLBACK (meta_wayland_seat_devices_updated), seat);
|
||||||
|
|
||||||
wl_global_create (display, &wl_seat_interface, META_WL_SEAT_VERSION, seat, bind_seat);
|
wl_global_create (display, &wl_seat_interface, META_WL_SEAT_VERSION, seat, bind_seat);
|
||||||
|
@ -254,10 +256,10 @@ meta_wayland_seat_init (MetaWaylandCompositor *compositor)
|
||||||
void
|
void
|
||||||
meta_wayland_seat_free (MetaWaylandSeat *seat)
|
meta_wayland_seat_free (MetaWaylandSeat *seat)
|
||||||
{
|
{
|
||||||
ClutterDeviceManager *device_manager;
|
ClutterSeat *clutter_seat;
|
||||||
|
|
||||||
device_manager = clutter_device_manager_get_default ();
|
clutter_seat = clutter_backend_get_default_seat (clutter_get_default_backend ());
|
||||||
g_signal_handlers_disconnect_by_data (device_manager, seat);
|
g_signal_handlers_disconnect_by_data (clutter_seat, seat);
|
||||||
meta_wayland_seat_set_capabilities (seat, 0);
|
meta_wayland_seat_set_capabilities (seat, 0);
|
||||||
|
|
||||||
g_object_unref (seat->pointer);
|
g_object_unref (seat->pointer);
|
||||||
|
|
|
@ -131,11 +131,6 @@ meta_wayland_tablet_manager_init (MetaWaylandCompositor *compositor)
|
||||||
void
|
void
|
||||||
meta_wayland_tablet_manager_free (MetaWaylandTabletManager *tablet_manager)
|
meta_wayland_tablet_manager_free (MetaWaylandTabletManager *tablet_manager)
|
||||||
{
|
{
|
||||||
ClutterDeviceManager *device_manager;
|
|
||||||
|
|
||||||
device_manager = clutter_device_manager_get_default ();
|
|
||||||
g_signal_handlers_disconnect_by_data (device_manager, tablet_manager);
|
|
||||||
|
|
||||||
g_hash_table_destroy (tablet_manager->seats);
|
g_hash_table_destroy (tablet_manager->seats);
|
||||||
g_slice_free (MetaWaylandTabletManager, tablet_manager);
|
g_slice_free (MetaWaylandTabletManager, tablet_manager);
|
||||||
}
|
}
|
||||||
|
|
|
@ -260,12 +260,12 @@ meta_wayland_tablet_seat_new (MetaWaylandTabletManager *manager,
|
||||||
MetaWaylandSeat *seat)
|
MetaWaylandSeat *seat)
|
||||||
{
|
{
|
||||||
MetaWaylandTabletSeat *tablet_seat;
|
MetaWaylandTabletSeat *tablet_seat;
|
||||||
const GSList *devices, *l;
|
GList *devices, *l;
|
||||||
|
|
||||||
tablet_seat = g_slice_new0 (MetaWaylandTabletSeat);
|
tablet_seat = g_slice_new0 (MetaWaylandTabletSeat);
|
||||||
tablet_seat->manager = manager;
|
tablet_seat->manager = manager;
|
||||||
tablet_seat->seat = seat;
|
tablet_seat->seat = seat;
|
||||||
tablet_seat->device_manager = clutter_device_manager_get_default ();
|
tablet_seat->clutter_seat = clutter_backend_get_default_seat (clutter_get_default_backend ());
|
||||||
tablet_seat->tablets = g_hash_table_new_full (NULL, NULL, NULL,
|
tablet_seat->tablets = g_hash_table_new_full (NULL, NULL, NULL,
|
||||||
(GDestroyNotify) meta_wayland_tablet_free);
|
(GDestroyNotify) meta_wayland_tablet_free);
|
||||||
tablet_seat->tools = g_hash_table_new_full (NULL, NULL, NULL,
|
tablet_seat->tools = g_hash_table_new_full (NULL, NULL, NULL,
|
||||||
|
@ -274,18 +274,20 @@ meta_wayland_tablet_seat_new (MetaWaylandTabletManager *manager,
|
||||||
(GDestroyNotify) meta_wayland_tablet_pad_free);
|
(GDestroyNotify) meta_wayland_tablet_pad_free);
|
||||||
wl_list_init (&tablet_seat->resource_list);
|
wl_list_init (&tablet_seat->resource_list);
|
||||||
|
|
||||||
g_signal_connect_swapped (tablet_seat->device_manager, "device-added",
|
g_signal_connect_swapped (tablet_seat->clutter_seat, "device-added",
|
||||||
G_CALLBACK (meta_wayland_tablet_seat_device_added),
|
G_CALLBACK (meta_wayland_tablet_seat_device_added),
|
||||||
tablet_seat);
|
tablet_seat);
|
||||||
g_signal_connect_swapped (tablet_seat->device_manager, "device-removed",
|
g_signal_connect_swapped (tablet_seat->clutter_seat, "device-removed",
|
||||||
G_CALLBACK (meta_wayland_tablet_seat_device_removed),
|
G_CALLBACK (meta_wayland_tablet_seat_device_removed),
|
||||||
tablet_seat);
|
tablet_seat);
|
||||||
|
|
||||||
devices = clutter_device_manager_peek_devices (tablet_seat->device_manager);
|
devices = clutter_seat_list_devices (tablet_seat->clutter_seat);
|
||||||
|
|
||||||
for (l = devices; l; l = l->next)
|
for (l = devices; l; l = l->next)
|
||||||
meta_wayland_tablet_seat_device_added (tablet_seat, l->data);
|
meta_wayland_tablet_seat_device_added (tablet_seat, l->data);
|
||||||
|
|
||||||
|
g_list_free (devices);
|
||||||
|
|
||||||
return tablet_seat;
|
return tablet_seat;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -300,7 +302,7 @@ meta_wayland_tablet_seat_free (MetaWaylandTabletSeat *tablet_seat)
|
||||||
wl_list_init (wl_resource_get_link (resource));
|
wl_list_init (wl_resource_get_link (resource));
|
||||||
}
|
}
|
||||||
|
|
||||||
g_signal_handlers_disconnect_by_data (tablet_seat->device_manager,
|
g_signal_handlers_disconnect_by_data (tablet_seat->clutter_seat,
|
||||||
tablet_seat);
|
tablet_seat);
|
||||||
g_hash_table_destroy (tablet_seat->tablets);
|
g_hash_table_destroy (tablet_seat->tablets);
|
||||||
g_hash_table_destroy (tablet_seat->tools);
|
g_hash_table_destroy (tablet_seat->tools);
|
||||||
|
@ -476,12 +478,12 @@ static GList *
|
||||||
lookup_grouped_devices (ClutterInputDevice *device,
|
lookup_grouped_devices (ClutterInputDevice *device,
|
||||||
ClutterInputDeviceType type)
|
ClutterInputDeviceType type)
|
||||||
{
|
{
|
||||||
ClutterDeviceManager *device_manager;
|
ClutterSeat *clutter_seat;
|
||||||
const GSList *devices, *l;
|
GList *devices, *l;
|
||||||
GList *group = NULL;
|
GList *group = NULL;
|
||||||
|
|
||||||
device_manager = clutter_device_manager_get_default ();
|
clutter_seat = clutter_input_device_get_seat (device);
|
||||||
devices = clutter_device_manager_peek_devices (device_manager);
|
devices = clutter_seat_list_devices (clutter_seat);
|
||||||
|
|
||||||
for (l = devices; l; l = l->next)
|
for (l = devices; l; l = l->next)
|
||||||
{
|
{
|
||||||
|
@ -496,6 +498,8 @@ lookup_grouped_devices (ClutterInputDevice *device,
|
||||||
group = g_list_prepend (group, l->data);
|
group = g_list_prepend (group, l->data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
g_list_free (devices);
|
||||||
|
|
||||||
return group;
|
return group;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@ struct _MetaWaylandTabletSeat
|
||||||
{
|
{
|
||||||
MetaWaylandTabletManager *manager;
|
MetaWaylandTabletManager *manager;
|
||||||
MetaWaylandSeat *seat;
|
MetaWaylandSeat *seat;
|
||||||
ClutterDeviceManager *device_manager;
|
ClutterSeat *clutter_seat;
|
||||||
struct wl_list resource_list;
|
struct wl_list resource_list;
|
||||||
|
|
||||||
GHashTable *tablets;
|
GHashTable *tablets;
|
||||||
|
|
|
@ -32,7 +32,6 @@
|
||||||
#ifdef HAVE_NATIVE_BACKEND
|
#ifdef HAVE_NATIVE_BACKEND
|
||||||
#include <libinput.h>
|
#include <libinput.h>
|
||||||
#include "backends/native/meta-backend-native.h"
|
#include "backends/native/meta-backend-native.h"
|
||||||
#include "backends/native/meta-device-manager-native.h"
|
|
||||||
#include "backends/native/meta-event-native.h"
|
#include "backends/native/meta-event-native.h"
|
||||||
#include "backends/native/meta-seat-native.h"
|
#include "backends/native/meta-seat-native.h"
|
||||||
#endif
|
#endif
|
||||||
|
@ -554,8 +553,6 @@ evdev_filter_func (struct libinput_event *event,
|
||||||
void
|
void
|
||||||
meta_wayland_touch_enable (MetaWaylandTouch *touch)
|
meta_wayland_touch_enable (MetaWaylandTouch *touch)
|
||||||
{
|
{
|
||||||
ClutterDeviceManager *manager;
|
|
||||||
|
|
||||||
#ifdef HAVE_NATIVE_BACKEND
|
#ifdef HAVE_NATIVE_BACKEND
|
||||||
touch->touch_surfaces = g_hash_table_new_full (NULL, NULL, NULL,
|
touch->touch_surfaces = g_hash_table_new_full (NULL, NULL, NULL,
|
||||||
(GDestroyNotify) touch_surface_free);
|
(GDestroyNotify) touch_surface_free);
|
||||||
|
@ -565,9 +562,6 @@ meta_wayland_touch_enable (MetaWaylandTouch *touch)
|
||||||
|
|
||||||
wl_list_init (&touch->resource_list);
|
wl_list_init (&touch->resource_list);
|
||||||
|
|
||||||
manager = clutter_device_manager_get_default ();
|
|
||||||
touch->device = clutter_device_manager_get_core_device (manager, CLUTTER_TOUCHSCREEN_DEVICE);
|
|
||||||
|
|
||||||
#ifdef HAVE_NATIVE_BACKEND
|
#ifdef HAVE_NATIVE_BACKEND
|
||||||
MetaBackend *backend = meta_get_backend ();
|
MetaBackend *backend = meta_get_backend ();
|
||||||
if (META_IS_BACKEND_NATIVE (backend))
|
if (META_IS_BACKEND_NATIVE (backend))
|
||||||
|
|
|
@ -44,7 +44,6 @@ struct _MetaWaylandTouch
|
||||||
GHashTable *touch_surfaces; /* HT of MetaWaylandSurface->MetaWaylandTouchSurface */
|
GHashTable *touch_surfaces; /* HT of MetaWaylandSurface->MetaWaylandTouchSurface */
|
||||||
GHashTable *touches; /* HT of sequence->MetaWaylandTouchInfo */
|
GHashTable *touches; /* HT of sequence->MetaWaylandTouchInfo */
|
||||||
|
|
||||||
ClutterInputDevice *device;
|
|
||||||
guint64 frame_slots;
|
guint64 frame_slots;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue