mutter/mutter-monitor-config-manager-rotation-fix.patch
Dominique Leuenberger f06d889031 Accepting request 528705 from GNOME:Next
- Add mutter-fix-hidpi-scaling-x11.patch: Fix hidpi scaling
  regression when using X11 (bgo#788049).
- Add mutter-monitor-config-manager-rotation-fix.patch: Fix
  transformation when rotating screen so that rotation by 90/270
  deg don't show a black screen; patch taken from upstream git
  (bgo#787836).

OBS-URL: https://build.opensuse.org/request/show/528705
OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/mutter?expand=0&rev=258
2017-09-26 07:21:40 +00:00

72 lines
3.0 KiB
Diff

From 1035200f26efaddc8c21194e775f11fedf2ee266 Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
Date: Sun, 17 Sep 2017 12:07:12 +0200
Subject: monitor-config-manager: Fix 90/270 degree rotation not working
When rotating 90/270 degrees we need to swap width and height. This fixes
the screen going black and the following errors showing in the journal:
gnome-shell[1097]: Failed to set CRTC mode 800x1280: No space left on device
gnome-shell[1097]: Failed to flip: Device or resource busy
gnome-shell[1097]: Failed to set CRTC mode 800x1280: No space left on device
gnome-shell[1097]: Failed to set CRTC mode 800x1280: No space left on device
When rotating a tablet with accelerometer 90/270 degrees.
https://bugzilla.gnome.org/show_bug.cgi?id=787836
---
src/backends/meta-monitor-config-manager.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/backends/meta-monitor-config-manager.c b/src/backends/meta-monitor-config-manager.c
index 265269c..d40c2e0 100644
--- a/src/backends/meta-monitor-config-manager.c
+++ b/src/backends/meta-monitor-config-manager.c
@@ -764,6 +764,14 @@ create_for_builtin_display_rotation (MetaMonitorConfigManager *config_manager,
logical_monitor_config->monitor_configs = g_list_append (NULL, monitor_config);
logical_monitor_config->transform = transform;
+ if (meta_monitor_transform_is_rotated (current_logical_monitor_config->transform) !=
+ meta_monitor_transform_is_rotated (logical_monitor_config->transform))
+ {
+ int temp = logical_monitor_config->layout.width;
+ logical_monitor_config->layout.width = logical_monitor_config->layout.height;
+ logical_monitor_config->layout.height = temp;
+ }
+
return meta_monitors_config_new (g_list_append (NULL, logical_monitor_config),
config_manager->current_config->layout_mode,
META_MONITORS_CONFIG_FLAG_NONE);
--
cgit v0.12
From 7e3a780dcdabaff6ff94fddec7995681029b2f9a Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
Date: Sun, 17 Sep 2017 16:21:46 +0200
Subject: monitor-config-manager-kms: Fix is_transform_handled
meta_monitor_manager_kms_is_transform_handled should checked the
transform passed as function argument, not the current crtc transform.
https://bugzilla.gnome.org/show_bug.cgi?id=787836
---
src/backends/native/meta-monitor-manager-kms.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/backends/native/meta-monitor-manager-kms.c b/src/backends/native/meta-monitor-manager-kms.c
index 6507e51..23a79ae 100644
--- a/src/backends/native/meta-monitor-manager-kms.c
+++ b/src/backends/native/meta-monitor-manager-kms.c
@@ -1782,7 +1782,7 @@ meta_monitor_manager_kms_is_transform_handled (MetaMonitorManager *manager,
{
MetaCrtcKms *crtc_kms = crtc->driver_private;
- if ((1 << crtc->transform) & crtc_kms->all_hw_transforms)
+ if ((1 << transform) & crtc_kms->all_hw_transforms)
return TRUE;
else
return FALSE;
--
cgit v0.12