[mutter/wip/carlosg/capabilities-and-dimensions: 9/11] backends/native: Implement get_dimensions() in native devices
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/carlosg/capabilities-and-dimensions: 9/11] backends/native: Implement get_dimensions() in native devices
- Date: Tue, 6 Sep 2022 15:38:35 +0000 (UTC)
commit b069bc194cf60f47ec9369e23462143d0a6209c0
Author: Carlos Garnacho <carlosg gnome org>
Date: Tue Sep 6 12:59:35 2022 +0200
backends/native: Implement get_dimensions() in native devices
We already poked the libinput device size, so use that.
src/backends/native/meta-input-device-native.c | 26 +++++++++++++++++++++++++-
src/backends/native/meta-input-device-native.h | 2 ++
2 files changed, 27 insertions(+), 1 deletion(-)
---
diff --git a/src/backends/native/meta-input-device-native.c b/src/backends/native/meta-input-device-native.c
index cbd334b047..5b11eeda45 100644
--- a/src/backends/native/meta-input-device-native.c
+++ b/src/backends/native/meta-input-device-native.c
@@ -204,6 +204,23 @@ meta_input_device_native_get_pad_feature_group (ClutterInputDevice *de
return -1;
}
+static gboolean
+meta_input_device_native_get_dimensions (ClutterInputDevice *device,
+ int *width,
+ int *height)
+{
+ MetaInputDeviceNative *device_native = META_INPUT_DEVICE_NATIVE (device);
+
+ if (device_native->width > 0 && device_native->height > 0)
+ {
+ *width = device_native->width;
+ *height = device_native->height;
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
static void
meta_input_device_native_bell_notify (MetaInputDeviceNative *device)
{
@@ -1250,6 +1267,7 @@ meta_input_device_native_class_init (MetaInputDeviceNativeClass *klass)
device_class->get_group_n_modes = meta_input_device_native_get_group_n_modes;
device_class->is_grouped = meta_input_device_native_is_grouped;
device_class->get_pad_feature_group = meta_input_device_native_get_pad_feature_group;
+ device_class->get_dimensions = meta_input_device_native_get_dimensions;
obj_props[PROP_DEVICE_MATRIX] =
g_param_spec_boxed ("device-matrix",
@@ -1273,6 +1291,8 @@ meta_input_device_native_init (MetaInputDeviceNative *self)
cairo_matrix_init_identity (&self->device_matrix);
self->device_aspect_ratio = 0;
self->output_ratio = 0;
+ self->width = -1;
+ self->height = -1;
}
static void
@@ -1471,7 +1491,11 @@ meta_input_device_native_new_in_impl (MetaSeatImpl *seat_impl,
update_pad_features (device);
if (libinput_device_get_size (libinput_device, &width, &height) == 0)
- device->device_aspect_ratio = width / height;
+ {
+ device->device_aspect_ratio = width / height;
+ device->width = width;
+ device->height = height;
+ }
device->group = (intptr_t) libinput_device_get_device_group (libinput_device);
diff --git a/src/backends/native/meta-input-device-native.h b/src/backends/native/meta-input-device-native.h
index 0fd17b86c0..802e3bc9eb 100644
--- a/src/backends/native/meta-input-device-native.h
+++ b/src/backends/native/meta-input-device-native.h
@@ -80,6 +80,8 @@ struct _MetaInputDeviceNative
intptr_t group;
cairo_matrix_t device_matrix;
+ int width;
+ int height;
double device_aspect_ratio; /* w:h */
double output_ratio; /* w:h */
MetaInputDeviceMapping mapping_mode;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]