diff options
author | Jonas Ådahl <jadahl@gmail.com> | 2017-09-11 14:10:26 +0800 |
---|---|---|
committer | Jonas Ådahl <jadahl@gmail.com> | 2017-09-20 17:26:32 +0800 |
commit | 22cdc8f41442413740c6d80bf68ffa62cd4b8793 (patch) | |
tree | 3a51cab6ddd650146e7e4318b19d61929396c0ba /src/backends/x11/meta-monitor-manager-xrandr.c | |
parent | 8b022a5595f7191f2110ebaa793c8143359e14be (diff) | |
download | mutter-22cdc8f41442413740c6d80bf68ffa62cd4b8793.tar.gz |
monitor-manager: Pass config to derive from when updating state
When we update state, we might not have set the current config yet (for
example if the Xrandr assignment didn't change), so pass the monitors
config we should derive from instead of fetching it from the monitor
config manager.
https://bugzilla.gnome.org/show_bug.cgi?id=787477
Diffstat (limited to 'src/backends/x11/meta-monitor-manager-xrandr.c')
-rw-r--r-- | src/backends/x11/meta-monitor-manager-xrandr.c | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/src/backends/x11/meta-monitor-manager-xrandr.c b/src/backends/x11/meta-monitor-manager-xrandr.c index 73842648f..c369d4960 100644 --- a/src/backends/x11/meta-monitor-manager-xrandr.c +++ b/src/backends/x11/meta-monitor-manager-xrandr.c @@ -1464,7 +1464,9 @@ apply_crtc_assignments (MetaMonitorManager *manager, static void meta_monitor_manager_xrandr_ensure_initial_config (MetaMonitorManager *manager) { - MetaMonitorManagerDeriveFlag flags; + MetaMonitorConfigManager *config_manager = + meta_monitor_manager_get_config_manager (manager); + MetaMonitorsConfig *config; meta_monitor_manager_ensure_configured (manager); @@ -1475,8 +1477,8 @@ meta_monitor_manager_xrandr_ensure_initial_config (MetaMonitorManager *manager) */ meta_monitor_manager_read_current_state (manager); - flags = META_MONITOR_MANAGER_DERIVE_FLAG_CONFIGURED_SCALE; - meta_monitor_manager_update_logical_state_derived (manager, flags); + config = meta_monitor_config_manager_get_current (config_manager); + meta_monitor_manager_update_logical_state_derived (manager, config); } static gboolean @@ -1490,10 +1492,7 @@ meta_monitor_manager_xrandr_apply_monitors_config (MetaMonitorManager *mana if (!config) { - MetaMonitorManagerDeriveFlag flags = - META_MONITOR_MANAGER_DERIVE_FLAG_NONE; - - meta_monitor_manager_rebuild_derived (manager, flags); + meta_monitor_manager_rebuild_derived (manager, NULL); return TRUE; } @@ -1527,11 +1526,7 @@ meta_monitor_manager_xrandr_apply_monitors_config (MetaMonitorManager *mana } else { - MetaMonitorManagerDeriveFlag flags; - - flags = (META_MONITOR_MANAGER_DERIVE_FLAG_NONE | - META_MONITOR_MANAGER_DERIVE_FLAG_CONFIGURED_SCALE); - meta_monitor_manager_rebuild_derived (manager, flags); + meta_monitor_manager_rebuild_derived (manager, config); } } @@ -1940,13 +1935,21 @@ meta_monitor_manager_xrandr_handle_xevent (MetaMonitorManagerXrandr *manager_xra } else { - MetaMonitorManagerDeriveFlag flags = - META_MONITOR_MANAGER_DERIVE_FLAG_NONE; + MetaMonitorsConfig *config; if (is_our_configuration) - flags |= META_MONITOR_MANAGER_DERIVE_FLAG_CONFIGURED_SCALE; + { + MetaMonitorConfigManager *config_manager = + meta_monitor_manager_get_config_manager (manager); + + config = meta_monitor_config_manager_get_current (config_manager); + } + else + { + config = NULL; + } - meta_monitor_manager_rebuild_derived (manager, flags); + meta_monitor_manager_rebuild_derived (manager, config); } return TRUE; |