summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Pitt <[email protected]>2010-10-05 11:30:46 +0200
committerBenjamin Valentin <[email protected]>2012-03-16 09:29:10 +0100
commita525db8f795d2101969a47f06c9fb6b60a497fb3 (patch)
treea6cde3942823a1523aece0285b63b129ff8a5054
parent60b0ab065772c3f109d7471c0d6d814d477f9803 (diff)
downloadmate-settings-daemon-a525db8f795d2101969a47f06c9fb6b60a497fb3.tar.bz2
mate-settings-daemon-a525db8f795d2101969a47f06c9fb6b60a497fb3.tar.xz
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
-rw-r--r--data/apps_mate_settings_daemon_xrandr.schemas.in19
-rw-r--r--plugins/xrandr/msd-xrandr-manager.c4
2 files changed, 22 insertions, 1 deletions
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
@@ -15,6 +15,25 @@
</locale>
</schema>
<schema>
+ <key>/schemas/apps/mate_settings_daemon/xrandr/use_xorg_monitor_settings</key>
+ <applyto>/apps/mate_settings_daemon/xrandr/use_xorg_monitor_settings</applyto>
+ <owner>mate</owner>
+ <type>bool</type>
+ <default>false</default>
+ <locale name="C">
+ <short>Do not touch monitor configuration</short>
+ <long>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).
+ </long>
+ </locale>
+ </schema>
+ <schema>
<key>/schemas/apps/mate_settings_daemon/xrandr/turn_on_external_monitors_at_startup</key>
<applyto>/apps/mate_settings_daemon/xrandr/turn_on_external_monitors_at_startup</applyto>
<owner>mate</owner>
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);