[mutter] monitor-transform: Add function to compute from orientation
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] monitor-transform: Add function to compute from orientation
- Date: Sat, 4 Sep 2021 09:12:41 +0000 (UTC)
commit d0a9dfefc8e98b65f9097336b4a1c937feeb2857
Author: Marco Trevisan (TreviƱo) <mail 3v1n0 net>
Date: Mon May 4 20:09:28 2020 +0200
monitor-transform: Add function to compute from orientation
We have two places in the code where we compute the monitor
transformation from the device orientation, avoid duplicating this
code.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1233>
src/backends/meta-monitor-config-manager.c | 16 +++-------------
src/backends/meta-monitor-manager.c | 22 +++-------------------
src/backends/meta-monitor-transform.c | 18 ++++++++++++++++++
src/backends/meta-monitor-transform.h | 4 ++++
4 files changed, 28 insertions(+), 32 deletions(-)
---
diff --git a/src/backends/meta-monitor-config-manager.c b/src/backends/meta-monitor-config-manager.c
index 1a0fdbd63b..da3f1dd544 100644
--- a/src/backends/meta-monitor-config-manager.c
+++ b/src/backends/meta-monitor-config-manager.c
@@ -702,6 +702,7 @@ get_monitor_transform (MetaMonitorManager *monitor_manager,
MetaMonitor *monitor)
{
MetaOrientationManager *orientation_manager;
+ MetaOrientation orientation;
MetaBackend *backend;
if (!meta_monitor_is_laptop_panel (monitor) ||
@@ -710,20 +711,9 @@ get_monitor_transform (MetaMonitorManager *monitor_manager,
backend = meta_monitor_manager_get_backend (monitor_manager);
orientation_manager = meta_backend_get_orientation_manager (backend);
+ orientation = meta_orientation_manager_get_orientation (orientation_manager);
- switch (meta_orientation_manager_get_orientation (orientation_manager))
- {
- case META_ORIENTATION_BOTTOM_UP:
- return META_MONITOR_TRANSFORM_180;
- case META_ORIENTATION_LEFT_UP:
- return META_MONITOR_TRANSFORM_90;
- case META_ORIENTATION_RIGHT_UP:
- return META_MONITOR_TRANSFORM_270;
- case META_ORIENTATION_UNDEFINED:
- case META_ORIENTATION_NORMAL:
- default:
- return META_MONITOR_TRANSFORM_NORMAL;
- }
+ return meta_monitor_transform_from_orientation (orientation);
}
static MetaLogicalMonitorConfig *
diff --git a/src/backends/meta-monitor-manager.c b/src/backends/meta-monitor-manager.c
index 1e34f17da4..e8e3a3c9ad 100644
--- a/src/backends/meta-monitor-manager.c
+++ b/src/backends/meta-monitor-manager.c
@@ -864,6 +864,7 @@ static void
handle_orientation_change (MetaOrientationManager *orientation_manager,
MetaMonitorManager *manager)
{
+ MetaOrientation orientation;
MetaMonitorTransform transform;
GError *error = NULL;
MetaMonitorsConfig *config;
@@ -877,25 +878,8 @@ handle_orientation_change (MetaOrientationManager *orientation_manager,
if (!meta_monitor_is_active (laptop_panel))
return;
- switch (meta_orientation_manager_get_orientation (orientation_manager))
- {
- case META_ORIENTATION_NORMAL:
- transform = META_MONITOR_TRANSFORM_NORMAL;
- break;
- case META_ORIENTATION_BOTTOM_UP:
- transform = META_MONITOR_TRANSFORM_180;
- break;
- case META_ORIENTATION_LEFT_UP:
- transform = META_MONITOR_TRANSFORM_90;
- break;
- case META_ORIENTATION_RIGHT_UP:
- transform = META_MONITOR_TRANSFORM_270;
- break;
-
- case META_ORIENTATION_UNDEFINED:
- default:
- return;
- }
+ orientation = meta_orientation_manager_get_orientation (orientation_manager);
+ transform = meta_monitor_transform_from_orientation (orientation);
laptop_logical_monitor = meta_monitor_get_logical_monitor (laptop_panel);
if (meta_logical_monitor_get_transform (laptop_logical_monitor) == transform)
diff --git a/src/backends/meta-monitor-transform.c b/src/backends/meta-monitor-transform.c
index d6b1f8b45d..e4a010e502 100644
--- a/src/backends/meta-monitor-transform.c
+++ b/src/backends/meta-monitor-transform.c
@@ -19,6 +19,24 @@
#include "backends/meta-monitor-transform.h"
+MetaMonitorTransform
+meta_monitor_transform_from_orientation (MetaOrientation orientation)
+{
+ switch (orientation)
+ {
+ case META_ORIENTATION_BOTTOM_UP:
+ return META_MONITOR_TRANSFORM_180;
+ case META_ORIENTATION_LEFT_UP:
+ return META_MONITOR_TRANSFORM_90;
+ case META_ORIENTATION_RIGHT_UP:
+ return META_MONITOR_TRANSFORM_270;
+ case META_ORIENTATION_UNDEFINED:
+ case META_ORIENTATION_NORMAL:
+ default:
+ return META_MONITOR_TRANSFORM_NORMAL;
+ }
+}
+
MetaMonitorTransform
meta_monitor_transform_invert (MetaMonitorTransform transform)
{
diff --git a/src/backends/meta-monitor-transform.h b/src/backends/meta-monitor-transform.h
index 6113f3a5aa..e027324f72 100644
--- a/src/backends/meta-monitor-transform.h
+++ b/src/backends/meta-monitor-transform.h
@@ -22,6 +22,7 @@
#include <glib-object.h>
#include "backends/meta-backend-types.h"
+#include "backends/meta-orientation-manager.h"
#include "core/util-private.h"
enum _MetaMonitorTransform
@@ -53,6 +54,9 @@ meta_monitor_transform_is_flipped (MetaMonitorTransform transform)
return (transform >= META_MONITOR_TRANSFORM_FLIPPED);
}
+META_EXPORT_TEST
+MetaMonitorTransform meta_monitor_transform_from_orientation (MetaOrientation orientation);
+
META_EXPORT_TEST
MetaMonitorTransform meta_monitor_transform_invert (MetaMonitorTransform transform);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]