[mutter/wip/carlosg/input-thread: 68/91] backends: Simplify MetaInputSettings vfunc
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/carlosg/input-thread: 68/91] backends: Simplify MetaInputSettings vfunc
- Date: Tue, 6 Oct 2020 21:13:47 +0000 (UTC)
commit 853ef4fe450b2e0db48bbf7d99384c83e6496ce6
Author: Carlos Garnacho <carlosg gnome org>
Date: Mon Aug 3 18:31:19 2020 +0200
backends: Simplify MetaInputSettings vfunc
Rename the set_tablet_keep_aspect() vfunc into a set_tablet_aspect_ratio()
one that takes an aspect ratio double, instead of leaking monitor info
into subclasses to let them all figure out this number themselves.
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1403
src/backends/meta-input-settings-private.h | 5 ++--
src/backends/meta-input-settings.c | 31 +++++++++++++++++--
src/backends/native/meta-input-settings-native.c | 38 ++++--------------------
src/backends/x11/meta-input-settings-x11.c | 33 +++++---------------
4 files changed, 43 insertions(+), 64 deletions(-)
---
diff --git a/src/backends/meta-input-settings-private.h b/src/backends/meta-input-settings-private.h
index 6647d19c22..1657730a0f 100644
--- a/src/backends/meta-input-settings-private.h
+++ b/src/backends/meta-input-settings-private.h
@@ -92,10 +92,9 @@ struct _MetaInputSettingsClass
void (* set_tablet_mapping) (MetaInputSettings *settings,
ClutterInputDevice *device,
GDesktopTabletMapping mapping);
- void (* set_tablet_keep_aspect) (MetaInputSettings *settings,
+ void (* set_tablet_aspect_ratio) (MetaInputSettings *settings,
ClutterInputDevice *device,
- MetaLogicalMonitor *logical_monitor,
- gboolean keep_aspect);
+ double ratio);
void (* set_tablet_area) (MetaInputSettings *settings,
ClutterInputDevice *device,
gdouble padding_left,
diff --git a/src/backends/meta-input-settings.c b/src/backends/meta-input-settings.c
index 1ca3f1e695..80b86d397a 100644
--- a/src/backends/meta-input-settings.c
+++ b/src/backends/meta-input-settings.c
@@ -1010,6 +1010,7 @@ update_tablet_keep_aspect (MetaInputSettings *input_settings,
MetaInputSettingsClass *input_settings_class;
MetaLogicalMonitor *logical_monitor = NULL;
gboolean keep_aspect;
+ double aspect_ratio;
if (clutter_input_device_get_device_type (device) != CLUTTER_TABLET_DEVICE &&
clutter_input_device_get_device_type (device) != CLUTTER_PEN_DEVICE &&
@@ -1035,8 +1036,34 @@ update_tablet_keep_aspect (MetaInputSettings *input_settings,
meta_input_settings_find_monitor (input_settings, settings, device,
NULL, &logical_monitor);
- input_settings_class->set_tablet_keep_aspect (input_settings, device,
- logical_monitor, keep_aspect);
+ if (keep_aspect)
+ {
+ int width, height;
+
+ if (logical_monitor)
+ {
+ width = logical_monitor->rect.width;
+ height = logical_monitor->rect.height;
+ }
+ else
+ {
+ MetaMonitorManager *monitor_manager;
+ MetaBackend *backend;
+
+ backend = meta_get_backend ();
+ monitor_manager = meta_backend_get_monitor_manager (backend);
+ meta_monitor_manager_get_screen_size (monitor_manager,
+ &width, &height);
+ }
+
+ aspect_ratio = (double) width / height;
+ }
+ else
+ {
+ aspect_ratio = 0;
+ }
+
+ input_settings_class->set_tablet_aspect_ratio (input_settings, device, aspect_ratio);
}
static void
diff --git a/src/backends/native/meta-input-settings-native.c
b/src/backends/native/meta-input-settings-native.c
index c57cd02f9f..c09bae7bc5 100644
--- a/src/backends/native/meta-input-settings-native.c
+++ b/src/backends/native/meta-input-settings-native.c
@@ -26,7 +26,6 @@
#include <linux/input-event-codes.h>
#include <libinput.h>
-#include "backends/meta-logical-monitor.h"
#include "backends/native/meta-backend-native.h"
#include "backends/native/meta-input-device-native.h"
#include "backends/native/meta-input-device-tool-native.h"
@@ -540,40 +539,13 @@ meta_input_settings_native_set_tablet_mapping (MetaInputSettings *settings,
}
static void
-meta_input_settings_native_set_tablet_keep_aspect (MetaInputSettings *settings,
- ClutterInputDevice *device,
- MetaLogicalMonitor *logical_monitor,
- gboolean keep_aspect)
+meta_input_settings_native_set_tablet_aspect_ratio (MetaInputSettings *settings,
+ ClutterInputDevice *device,
+ gdouble aspect_ratio)
{
- double aspect_ratio = 0;
-
if (meta_input_device_native_get_mapping_mode (device) ==
META_INPUT_DEVICE_MAPPING_RELATIVE)
- keep_aspect = FALSE;
-
- if (keep_aspect)
- {
- int width, height;
-
- if (logical_monitor)
- {
- width = logical_monitor->rect.width;
- height = logical_monitor->rect.height;
- }
- else
- {
- MetaMonitorManager *monitor_manager;
- MetaBackend *backend;
-
- backend = meta_get_backend ();
- monitor_manager = meta_backend_get_monitor_manager (backend);
- meta_monitor_manager_get_screen_size (monitor_manager,
- &width,
- &height);
- }
-
- aspect_ratio = (double) width / height;
- }
+ aspect_ratio = 0;
g_object_set (device, "output-aspect-ratio", aspect_ratio, NULL);
}
@@ -736,7 +708,7 @@ meta_input_settings_native_class_init (MetaInputSettingsNativeClass *klass)
input_settings_class->set_disable_while_typing = meta_input_settings_native_set_disable_while_typing;
input_settings_class->set_tablet_mapping = meta_input_settings_native_set_tablet_mapping;
- input_settings_class->set_tablet_keep_aspect = meta_input_settings_native_set_tablet_keep_aspect;
+ input_settings_class->set_tablet_aspect_ratio = meta_input_settings_native_set_tablet_aspect_ratio;
input_settings_class->set_tablet_area = meta_input_settings_native_set_tablet_area;
input_settings_class->set_mouse_accel_profile = meta_input_settings_native_set_mouse_accel_profile;
diff --git a/src/backends/x11/meta-input-settings-x11.c b/src/backends/x11/meta-input-settings-x11.c
index beb9be49e1..eb82896179 100644
--- a/src/backends/x11/meta-input-settings-x11.c
+++ b/src/backends/x11/meta-input-settings-x11.c
@@ -35,7 +35,6 @@
#include <gudev/gudev.h>
#endif
-#include "backends/meta-logical-monitor.h"
#include "backends/x11/meta-backend-x11.h"
#include "core/display-private.h"
#include "meta/meta-x11-errors.h"
@@ -729,37 +728,19 @@ meta_input_settings_x11_set_tablet_area (MetaInputSettings *settings,
}
static void
-meta_input_settings_x11_set_tablet_keep_aspect (MetaInputSettings *settings,
- ClutterInputDevice *device,
- MetaLogicalMonitor *logical_monitor,
- gboolean keep_aspect)
+meta_input_settings_x11_set_tablet_aspect_ratio (MetaInputSettings *settings,
+ ClutterInputDevice *device,
+ gdouble aspect_ratio)
{
- gint32 width, height, dev_x, dev_y, dev_width, dev_height, area[4] = { 0 };
+ gint32 dev_x, dev_y, dev_width, dev_height, area[4] = { 0 };
if (!device_query_area (device, &dev_x, &dev_y, &dev_width, &dev_height))
return;
- if (keep_aspect)
+ if (aspect_ratio > 0)
{
- double aspect_ratio, dev_aspect;
+ double dev_aspect;
- if (logical_monitor)
- {
- width = logical_monitor->rect.width;
- height = logical_monitor->rect.height;
- }
- else
- {
- MetaMonitorManager *monitor_manager;
- MetaBackend *backend;
-
- backend = meta_get_backend ();
- monitor_manager = meta_backend_get_monitor_manager (backend);
- meta_monitor_manager_get_screen_size (monitor_manager,
- &width, &height);
- }
-
- aspect_ratio = (double) width / height;
dev_aspect = (double) dev_width / dev_height;
if (dev_aspect > aspect_ratio)
@@ -931,7 +912,7 @@ meta_input_settings_x11_class_init (MetaInputSettingsX11Class *klass)
input_settings_class->set_keyboard_repeat = meta_input_settings_x11_set_keyboard_repeat;
input_settings_class->set_tablet_mapping = meta_input_settings_x11_set_tablet_mapping;
- input_settings_class->set_tablet_keep_aspect = meta_input_settings_x11_set_tablet_keep_aspect;
+ input_settings_class->set_tablet_aspect_ratio = meta_input_settings_x11_set_tablet_aspect_ratio;
input_settings_class->set_tablet_area = meta_input_settings_x11_set_tablet_area;
input_settings_class->set_mouse_accel_profile = meta_input_settings_x11_set_mouse_accel_profile;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]