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>
This commit is contained in:
parent
bf54a16f92
commit
d0a9dfefc8
@ -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 *
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user