[gnome-flashback] monitor-manager: set switch config when create monitors config
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-flashback] monitor-manager: set switch config when create monitors config
- Date: Sat, 5 Sep 2020 18:13:11 +0000 (UTC)
commit 65746025307727bc215635029c45ef51e88dd4b0
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date: Sat Sep 5 17:41:04 2020 +0300
monitor-manager: set switch config when create monitors config
Based on mutter commit:
https://gitlab.gnome.org/GNOME/mutter/-/commit/bd6bab113b15b8a391fd
backends/gf-monitor-config-manager.c | 55 ++++++++++++++++++++++++++++--------
1 file changed, 44 insertions(+), 11 deletions(-)
---
diff --git a/backends/gf-monitor-config-manager.c b/backends/gf-monitor-config-manager.c
index c7112e78..b3253e2a 100644
--- a/backends/gf-monitor-config-manager.c
+++ b/backends/gf-monitor-config-manager.c
@@ -264,6 +264,7 @@ create_for_switch_config_all_mirror (GfMonitorConfigManager *config_manager)
GList *modes;
GList *monitors;
GList *l;
+ GfMonitorsConfig *monitors_config;
monitors = gf_monitor_manager_get_monitors (monitor_manager);
monitor = monitors->data;
@@ -356,8 +357,16 @@ create_for_switch_config_all_mirror (GfMonitorConfigManager *config_manager)
logical_monitor_configs = g_list_append (NULL, logical_monitor_config);
layout_mode = gf_monitor_manager_get_default_layout_mode (monitor_manager);
- return gf_monitors_config_new (monitor_manager, logical_monitor_configs,
- layout_mode, GF_MONITORS_CONFIG_FLAG_NONE);
+ monitors_config = gf_monitors_config_new (monitor_manager,
+ logical_monitor_configs,
+ layout_mode,
+ GF_MONITORS_CONFIG_FLAG_NONE);
+
+ if (monitors_config)
+ gf_monitors_config_set_switch_config (monitors_config,
+ GF_MONITOR_SWITCH_CONFIG_ALL_MIRROR);
+
+ return monitors_config;
}
static GfMonitorsConfig *
@@ -369,6 +378,7 @@ create_for_switch_config_external (GfMonitorConfigManager *config_manager)
GfLogicalMonitorLayoutMode layout_mode;
GList *monitors;
GList *l;
+ GfMonitorsConfig *monitors_config;
layout_mode = gf_monitor_manager_get_default_layout_mode (monitor_manager);
@@ -394,8 +404,16 @@ create_for_switch_config_external (GfMonitorConfigManager *config_manager)
x += logical_monitor_config->layout.width;
}
- return gf_monitors_config_new (monitor_manager, logical_monitor_configs,
- layout_mode, GF_MONITORS_CONFIG_FLAG_NONE);
+ monitors_config = gf_monitors_config_new (monitor_manager,
+ logical_monitor_configs,
+ layout_mode,
+ GF_MONITORS_CONFIG_FLAG_NONE);
+
+ if (monitors_config)
+ gf_monitors_config_set_switch_config (monitors_config,
+ GF_MONITOR_SWITCH_CONFIG_EXTERNAL);
+
+ return monitors_config;
}
static GfMonitorsConfig *
@@ -406,6 +424,7 @@ create_for_switch_config_builtin (GfMonitorConfigManager *config_manager)
GList *logical_monitor_configs;
GfLogicalMonitorConfig *primary_logical_monitor_config;
GfMonitor *monitor;
+ GfMonitorsConfig *monitors_config;
monitor = gf_monitor_manager_get_laptop_panel (monitor_manager);
if (!monitor)
@@ -420,8 +439,16 @@ create_for_switch_config_builtin (GfMonitorConfigManager *config_manager)
primary_logical_monitor_config->is_primary = TRUE;
logical_monitor_configs = g_list_append (NULL, primary_logical_monitor_config);
- return gf_monitors_config_new (monitor_manager, logical_monitor_configs,
- layout_mode, GF_MONITORS_CONFIG_FLAG_NONE);
+ monitors_config = gf_monitors_config_new (monitor_manager,
+ logical_monitor_configs,
+ layout_mode,
+ GF_MONITORS_CONFIG_FLAG_NONE);
+
+ if (monitors_config)
+ gf_monitors_config_set_switch_config (monitors_config,
+ GF_MONITOR_SWITCH_CONFIG_BUILTIN);
+
+ return monitors_config;
}
static GList *
@@ -1099,6 +1126,7 @@ gf_monitor_config_manager_create_linear (GfMonitorConfigManager *config_manager)
int x;
GList *monitors;
GList *l;
+ GfMonitorsConfig *monitors_config;
primary_monitor = find_primary_monitor (monitor_manager);
if (!primary_monitor)
@@ -1139,8 +1167,16 @@ gf_monitor_config_manager_create_linear (GfMonitorConfigManager *config_manager)
x += logical_monitor_config->layout.width;
}
- return gf_monitors_config_new (monitor_manager, logical_monitor_configs,
- layout_mode, GF_MONITORS_CONFIG_FLAG_NONE);
+ monitors_config = gf_monitors_config_new (monitor_manager,
+ logical_monitor_configs,
+ layout_mode,
+ GF_MONITORS_CONFIG_FLAG_NONE);
+
+ if (monitors_config)
+ gf_monitors_config_set_switch_config (monitors_config,
+ GF_MONITOR_SWITCH_CONFIG_ALL_LINEAR);
+
+ return monitors_config;
}
GfMonitorsConfig *
@@ -1292,9 +1328,6 @@ gf_monitor_config_manager_create_for_switch_config (GfMonitorConfigManager *c
break;
}
- if (config)
- gf_monitors_config_set_switch_config (config, config_type);
-
return config;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]