backends/native: Make device grouping libinput independent
Keep device groups as opaque pointers, and just compare those afterwards. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1639>
This commit is contained in:
parent
96070e820c
commit
67f0704340
@ -172,13 +172,12 @@ static gboolean
|
|||||||
meta_input_device_native_is_grouped (ClutterInputDevice *device,
|
meta_input_device_native_is_grouped (ClutterInputDevice *device,
|
||||||
ClutterInputDevice *other_device)
|
ClutterInputDevice *other_device)
|
||||||
{
|
{
|
||||||
struct libinput_device *libinput_device, *other_libinput_device;
|
MetaInputDeviceNative *device_native, *other_device_native;
|
||||||
|
|
||||||
libinput_device = meta_input_device_native_get_libinput_device (device);
|
device_native = META_INPUT_DEVICE_NATIVE (device);
|
||||||
other_libinput_device = meta_input_device_native_get_libinput_device (other_device);
|
other_device_native = META_INPUT_DEVICE_NATIVE (other_device);
|
||||||
|
|
||||||
return libinput_device_get_device_group (libinput_device) ==
|
return device_native->group == other_device_native->group;
|
||||||
libinput_device_get_device_group (other_libinput_device);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -1395,6 +1394,8 @@ meta_input_device_native_new_in_impl (MetaSeatImpl *seat_impl,
|
|||||||
if (libinput_device_get_size (libinput_device, &width, &height) == 0)
|
if (libinput_device_get_size (libinput_device, &width, &height) == 0)
|
||||||
device->device_aspect_ratio = width / height;
|
device->device_aspect_ratio = width / height;
|
||||||
|
|
||||||
|
device->group = (intptr_t) libinput_device_get_device_group (libinput_device);
|
||||||
|
|
||||||
return CLUTTER_INPUT_DEVICE (device);
|
return CLUTTER_INPUT_DEVICE (device);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,6 +77,7 @@ struct _MetaInputDeviceNative
|
|||||||
ClutterInputDeviceTool *last_tool;
|
ClutterInputDeviceTool *last_tool;
|
||||||
GArray *pad_features;
|
GArray *pad_features;
|
||||||
GArray *modes;
|
GArray *modes;
|
||||||
|
intptr_t group;
|
||||||
|
|
||||||
cairo_matrix_t device_matrix;
|
cairo_matrix_t device_matrix;
|
||||||
double device_aspect_ratio; /* w:h */
|
double device_aspect_ratio; /* w:h */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user