From a525db8f795d2101969a47f06c9fb6b60a497fb3 Mon Sep 17 00:00:00 2001 From: Martin Pitt Date: Tue, 5 Oct 2010 11:30:46 +0200 Subject: RANDR - Add mateconf key for disabling boot time configuration In a lot of situations it is undesirable to have g-s-d change the XRandR settings, because it overrides X.org customizations, leads to unnecessary mode switches, or increases boot time. Add a mateconf key "use_xorg_monitor_settings" to disable apply_default_boot_configuration(), in which case the XRandR configuration will not be touched unless there is a global or per-user configuration file. Bug: https://bugzilla.gnome.org/show_bug.cgi?id=631388 Bug-Ubuntu: https://launchpad.net/bugs/640807 --- data/apps_mate_settings_daemon_xrandr.schemas.in | 19 +++++++++++++++++++ plugins/xrandr/msd-xrandr-manager.c | 4 +++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/data/apps_mate_settings_daemon_xrandr.schemas.in b/data/apps_mate_settings_daemon_xrandr.schemas.in index 2314ac8..a8adbc9 100644 --- a/data/apps_mate_settings_daemon_xrandr.schemas.in +++ b/data/apps_mate_settings_daemon_xrandr.schemas.in @@ -14,6 +14,25 @@ + + /schemas/apps/mate_settings_daemon/xrandr/use_xorg_monitor_settings + /apps/mate_settings_daemon/xrandr/use_xorg_monitor_settings + mate + bool + false + + Do not touch monitor configuration + Usually, mate-settings-daemon configures internal and + external monitors according to the + turn_on_external_monitors_at_startup and + turn_on_laptop_monitor_at_startup settings and determines + an appropriate cloning/side-by-side mode. Setting this key + to True disables this, and the monitor settings are not + touched at all (unless there is an explicit user + configuration). + + + /schemas/apps/mate_settings_daemon/xrandr/turn_on_external_monitors_at_startup /apps/mate_settings_daemon/xrandr/turn_on_external_monitors_at_startup diff --git a/plugins/xrandr/msd-xrandr-manager.c b/plugins/xrandr/msd-xrandr-manager.c index 75e41dd..7d8d7f5 100644 --- a/plugins/xrandr/msd-xrandr-manager.c +++ b/plugins/xrandr/msd-xrandr-manager.c @@ -61,6 +61,7 @@ #define CONF_DIR "/apps/mate_settings_daemon/xrandr" #define CONF_KEY_SHOW_NOTIFICATION_ICON (CONF_DIR "/show_notification_icon") +#define CONF_KEY_USE_XORG_MONITOR_SETTINGS (CONF_DIR "/use_xorg_monitor_settings") #define CONF_KEY_TURN_ON_EXTERNAL_MONITORS_AT_STARTUP (CONF_DIR "/turn_on_external_monitors_at_startup") #define CONF_KEY_TURN_ON_LAPTOP_MONITOR_AT_STARTUP (CONF_DIR "/turn_on_laptop_monitor_at_startup") #define CONF_KEY_DEFAULT_CONFIGURATION_FILE (CONF_DIR "/default_configuration_file") @@ -2350,7 +2351,8 @@ msd_xrandr_manager_start (MsdXrandrManager *manager, show_timestamps_dialog (manager, "Startup"); if (!apply_stored_configuration_at_startup (manager, GDK_CURRENT_TIME)) /* we don't have a real timestamp at startup anyway */ if (!apply_default_configuration_from_file (manager, GDK_CURRENT_TIME)) - apply_default_boot_configuration (manager, GDK_CURRENT_TIME); + if (!mateconf_client_get_bool (manager->priv->client, CONF_KEY_USE_XORG_MONITOR_SETTINGS, NULL)) + apply_default_boot_configuration (manager, GDK_CURRENT_TIME); log_msg ("State of screen after initial configuration:\n"); log_screen (manager->priv->rw_screen); -- cgit v1.2.1