Backport upstream MR3299 to fix disabling scale-monitor-framebuffer
https://bugzilla.redhat.com/show_bug.cgi?id=2242061
This commit is contained in:
parent
c47a34687d
commit
20a16a1f8a
58
3299.patch
Normal file
58
3299.patch
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
From 4008ed2f55d4621a4ed2230799c1ab2d012b3545 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
|
||||||
|
Date: Wed, 27 Sep 2023 22:59:13 +0800
|
||||||
|
Subject: [PATCH] monitor-config-store: Discard config with fractional scale
|
||||||
|
when unusable
|
||||||
|
|
||||||
|
When a configuration has a fractional scale, but we're using a physical
|
||||||
|
monitor layout, we can't use the scale, but if we do, we end up with
|
||||||
|
wierd issues down the line. Just discard the config if we run into this.
|
||||||
|
|
||||||
|
Eventually we probably want to store the layout mode in the
|
||||||
|
configuration so we can handle more seamless switching between physical
|
||||||
|
and logical layout mode, but first do this.
|
||||||
|
|
||||||
|
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3057
|
||||||
|
---
|
||||||
|
src/backends/meta-monitor-config-store.c | 13 +++++++++++--
|
||||||
|
1 file changed, 11 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/backends/meta-monitor-config-store.c b/src/backends/meta-monitor-config-store.c
|
||||||
|
index fe9406fd3f7..53a32cd2aaf 100644
|
||||||
|
--- a/src/backends/meta-monitor-config-store.c
|
||||||
|
+++ b/src/backends/meta-monitor-config-store.c
|
||||||
|
@@ -653,6 +653,7 @@ derive_logical_monitor_layout (MetaLogicalMonitorConfig *logical_monitor_conf
|
||||||
|
MetaMonitorConfig *monitor_config;
|
||||||
|
int mode_width, mode_height;
|
||||||
|
int width = 0, height = 0;
|
||||||
|
+ float scale;
|
||||||
|
GList *l;
|
||||||
|
|
||||||
|
monitor_config = logical_monitor_config->monitor_configs->data;
|
||||||
|
@@ -683,13 +684,21 @@ derive_logical_monitor_layout (MetaLogicalMonitorConfig *logical_monitor_conf
|
||||||
|
height = mode_height;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ scale = logical_monitor_config->scale;
|
||||||
|
+
|
||||||
|
switch (layout_mode)
|
||||||
|
{
|
||||||
|
case META_LOGICAL_MONITOR_LAYOUT_MODE_LOGICAL:
|
||||||
|
- width = roundf (width / logical_monitor_config->scale);
|
||||||
|
- height = roundf (height / logical_monitor_config->scale);
|
||||||
|
+ width = roundf (width / scale);
|
||||||
|
+ height = roundf (height / scale);
|
||||||
|
break;
|
||||||
|
case META_LOGICAL_MONITOR_LAYOUT_MODE_PHYSICAL:
|
||||||
|
+ if (!G_APPROX_VALUE (scale, roundf (scale), FLT_EPSILON))
|
||||||
|
+ {
|
||||||
|
+ g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
|
||||||
|
+ "A fractional scale with physical layout mode not allowed");
|
||||||
|
+ return FALSE;
|
||||||
|
+ }
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
GitLab
|
||||||
|
|
@ -36,6 +36,9 @@ Patch5: 0001-util-Add-way-to-print-backtraces.patch
|
|||||||
Patch6: 0002-clutter-Add-ms2ns-helper.patch
|
Patch6: 0002-clutter-Add-ms2ns-helper.patch
|
||||||
Patch7: 0003-native-Stop-using-real-time-thread-if-it-stalls.patch
|
Patch7: 0003-native-Stop-using-real-time-thread-if-it-stalls.patch
|
||||||
|
|
||||||
|
# https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3299
|
||||||
|
Patch8: 3299.patch
|
||||||
|
|
||||||
BuildRequires: pkgconfig(gobject-introspection-1.0) >= 1.41.0
|
BuildRequires: pkgconfig(gobject-introspection-1.0) >= 1.41.0
|
||||||
BuildRequires: pkgconfig(polkit-gobject-1)
|
BuildRequires: pkgconfig(polkit-gobject-1)
|
||||||
BuildRequires: pkgconfig(sm)
|
BuildRequires: pkgconfig(sm)
|
||||||
|
Loading…
Reference in New Issue
Block a user