[gnome-control-center/benzea/fix-single-display-405: 14/14] display: Fix Apply button showing for changes to disabled monitor
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center/benzea/fix-single-display-405: 14/14] display: Fix Apply button showing for changes to disabled monitor
- Date: Mon, 11 Mar 2019 18:32:52 +0000 (UTC)
commit 37c768ab0f5d84d580648576521f33d723a7a0bf
Author: Benjamin Berg <bberg redhat com>
Date: Thu Mar 7 19:31:14 2019 +0100
display: Fix Apply button showing for changes to disabled monitor
Disabled monitors may or may not have a mode selected. This means, we
need to skip the mode comparison if the two compared monitors are
disabled (i.e. have no logical monitor).
Move the mode check to the end and skip it if both monitors are disabled.
This fixes cases where identical configurations are misdetected, because
we applied a mode to a monitor and disabled the monitor again. This
happens for example when switching the active monitor in "single" mode.
panels/display/cc-display-config-dbus.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
---
diff --git a/panels/display/cc-display-config-dbus.c b/panels/display/cc-display-config-dbus.c
index efb91b346..8c04119c9 100644
--- a/panels/display/cc-display-config-dbus.c
+++ b/panels/display/cc-display-config-dbus.c
@@ -1066,11 +1066,15 @@ cc_display_config_dbus_equal (CcDisplayConfig *pself,
if (m1->underscanning != m2->underscanning)
return FALSE;
- if (!cc_display_mode_dbus_equal (CC_DISPLAY_MODE_DBUS (m1->current_mode),
- CC_DISPLAY_MODE_DBUS (m2->current_mode)))
+ if (!cc_display_logical_monitor_equal (m1->logical_monitor, m2->logical_monitor))
return FALSE;
- if (!cc_display_logical_monitor_equal (m1->logical_monitor, m2->logical_monitor))
+ /* Modes should not be compared if both monitors have no logical monitor. */
+ if (m1->logical_monitor == NULL && m2->logical_monitor == NULL)
+ continue;
+
+ if (!cc_display_mode_dbus_equal (CC_DISPLAY_MODE_DBUS (m1->current_mode),
+ CC_DISPLAY_MODE_DBUS (m2->current_mode)))
return FALSE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]