diff --git a/src/backends/meta-input-settings-private.h b/src/backends/meta-input-settings-private.h index 6647d19c2..1657730a0 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 38d555bd1..4c5ed6407 100644 --- a/src/backends/meta-input-settings.c +++ b/src/backends/meta-input-settings.c @@ -1008,6 +1008,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 && @@ -1033,8 +1034,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 008a6363e..7bf6eefb4 100644 --- a/src/backends/native/meta-input-settings-native.c +++ b/src/backends/native/meta-input-settings-native.c @@ -26,7 +26,6 @@ #include #include -#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" @@ -526,40 +525,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); } @@ -722,7 +694,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 3597acd3b..64e23bce0 100644 --- a/src/backends/x11/meta-input-settings-x11.c +++ b/src/backends/x11/meta-input-settings-x11.c @@ -35,7 +35,6 @@ #include #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" @@ -741,37 +740,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) @@ -943,7 +924,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;