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)
|
MetaMonitor *monitor)
|
||||||
{
|
{
|
||||||
MetaOrientationManager *orientation_manager;
|
MetaOrientationManager *orientation_manager;
|
||||||
|
MetaOrientation orientation;
|
||||||
MetaBackend *backend;
|
MetaBackend *backend;
|
||||||
|
|
||||||
if (!meta_monitor_is_laptop_panel (monitor) ||
|
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);
|
backend = meta_monitor_manager_get_backend (monitor_manager);
|
||||||
orientation_manager = meta_backend_get_orientation_manager (backend);
|
orientation_manager = meta_backend_get_orientation_manager (backend);
|
||||||
|
orientation = meta_orientation_manager_get_orientation (orientation_manager);
|
||||||
|
|
||||||
switch (meta_orientation_manager_get_orientation (orientation_manager))
|
return meta_monitor_transform_from_orientation (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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static MetaLogicalMonitorConfig *
|
static MetaLogicalMonitorConfig *
|
||||||
|
@ -864,6 +864,7 @@ static void
|
|||||||
handle_orientation_change (MetaOrientationManager *orientation_manager,
|
handle_orientation_change (MetaOrientationManager *orientation_manager,
|
||||||
MetaMonitorManager *manager)
|
MetaMonitorManager *manager)
|
||||||
{
|
{
|
||||||
|
MetaOrientation orientation;
|
||||||
MetaMonitorTransform transform;
|
MetaMonitorTransform transform;
|
||||||
GError *error = NULL;
|
GError *error = NULL;
|
||||||
MetaMonitorsConfig *config;
|
MetaMonitorsConfig *config;
|
||||||
@ -877,25 +878,8 @@ handle_orientation_change (MetaOrientationManager *orientation_manager,
|
|||||||
if (!meta_monitor_is_active (laptop_panel))
|
if (!meta_monitor_is_active (laptop_panel))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
switch (meta_orientation_manager_get_orientation (orientation_manager))
|
orientation = meta_orientation_manager_get_orientation (orientation_manager);
|
||||||
{
|
transform = meta_monitor_transform_from_orientation (orientation);
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
laptop_logical_monitor = meta_monitor_get_logical_monitor (laptop_panel);
|
laptop_logical_monitor = meta_monitor_get_logical_monitor (laptop_panel);
|
||||||
if (meta_logical_monitor_get_transform (laptop_logical_monitor) == transform)
|
if (meta_logical_monitor_get_transform (laptop_logical_monitor) == transform)
|
||||||
|
@ -19,6 +19,24 @@
|
|||||||
|
|
||||||
#include "backends/meta-monitor-transform.h"
|
#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
|
MetaMonitorTransform
|
||||||
meta_monitor_transform_invert (MetaMonitorTransform transform)
|
meta_monitor_transform_invert (MetaMonitorTransform transform)
|
||||||
{
|
{
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#include <glib-object.h>
|
#include <glib-object.h>
|
||||||
|
|
||||||
#include "backends/meta-backend-types.h"
|
#include "backends/meta-backend-types.h"
|
||||||
|
#include "backends/meta-orientation-manager.h"
|
||||||
#include "core/util-private.h"
|
#include "core/util-private.h"
|
||||||
|
|
||||||
enum _MetaMonitorTransform
|
enum _MetaMonitorTransform
|
||||||
@ -53,6 +54,9 @@ meta_monitor_transform_is_flipped (MetaMonitorTransform transform)
|
|||||||
return (transform >= META_MONITOR_TRANSFORM_FLIPPED);
|
return (transform >= META_MONITOR_TRANSFORM_FLIPPED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
META_EXPORT_TEST
|
||||||
|
MetaMonitorTransform meta_monitor_transform_from_orientation (MetaOrientation orientation);
|
||||||
|
|
||||||
META_EXPORT_TEST
|
META_EXPORT_TEST
|
||||||
MetaMonitorTransform meta_monitor_transform_invert (MetaMonitorTransform transform);
|
MetaMonitorTransform meta_monitor_transform_invert (MetaMonitorTransform transform);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user