[mutter/gnome-41] monitor-manager: Fix orientation changes on devices with 90° mounted panels
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/gnome-41] monitor-manager: Fix orientation changes on devices with 90° mounted panels
- Date: Tue, 11 Jan 2022 14:38:57 +0000 (UTC)
commit 55779b3b9d33b00ad37c28f40a3d4201db208735
Author: Hans de Goede <hdegoede redhat com>
Date: Mon Nov 15 17:20:27 2021 +0100
monitor-manager: Fix orientation changes on devices with 90° mounted panels
Commit 2289f56112a9 ("monitor-manager: Don't apply unneeded orientation
changes") added an early return to handle_orientation_change () in case
the transform is unchanged.
But this did not take the correction of the transform for devices
with 90° mounted panels into account causing a desired orientation
change to get skipped if the new orientation matches the corrected
logical orientation from the previous transform setting.
Fix this by calling meta_monitor_crtc_to_logical_transform () on the
transform before comparing it, matching the
meta_monitor_crtc_to_logical_transform () call in
create_for_builtin_display_rotation ().
Related: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1233
(cherry picked from commit cc9bb7c516c5fd2ab48b66934538cc7a60e6a84a)
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2223>
src/backends/meta-monitor-manager.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
---
diff --git a/src/backends/meta-monitor-manager.c b/src/backends/meta-monitor-manager.c
index 4cf4d90c5f..092cae76c2 100644
--- a/src/backends/meta-monitor-manager.c
+++ b/src/backends/meta-monitor-manager.c
@@ -866,6 +866,7 @@ handle_orientation_change (MetaOrientationManager *orientation_manager,
{
MetaOrientation orientation;
MetaMonitorTransform transform;
+ MetaMonitorTransform panel_transform;
GError *error = NULL;
MetaMonitorsConfig *config;
MetaMonitor *laptop_panel;
@@ -882,7 +883,10 @@ handle_orientation_change (MetaOrientationManager *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)
+ panel_transform =
+ meta_monitor_crtc_to_logical_transform (laptop_panel, transform);
+ if (meta_logical_monitor_get_transform (laptop_logical_monitor) ==
+ panel_transform)
return;
current_config =
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]