diff options
author | Federico Mena Quintero <federico@novell.com> | 2010-03-08 18:35:31 -0600 |
---|---|---|
committer | Federico Mena Quintero <federico@novell.com> | 2010-03-08 19:29:06 -0600 |
commit | 5800925a383d6498bd4281a7eebe0fc39be640b7 (patch) | |
tree | 32e8ed3f1444bf948ed6bcd114e23e6bf8ffcb62 | |
parent | b89796b2d1a66b814337141d5fbefe06b2b5cac2 (diff) | |
download | gnome-settings-daemon-5800925a383d6498bd4281a7eebe0fc39be640b7.tar.gz |
Apply a default RANDR configuration at startup
This will get applied from the file specified by the GConf key
mentioned in the previous commit, if the user's own configuration
file (in ~/.config/monitors.xml) doesn't exist or if it doesn't match
the current monitor setup.
Signed-off-by: Federico Mena Quintero <federico@novell.com>
-rw-r--r-- | plugins/xrandr/gsd-xrandr-manager.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/plugins/xrandr/gsd-xrandr-manager.c b/plugins/xrandr/gsd-xrandr-manager.c index b07dcdb4..67841561 100644 --- a/plugins/xrandr/gsd-xrandr-manager.c +++ b/plugins/xrandr/gsd-xrandr-manager.c @@ -2069,6 +2069,23 @@ out: return success; } +static gboolean +apply_default_configuration_from_file (GsdXrandrManager *manager, guint32 timestamp) +{ + GsdXrandrManagerPrivate *priv = manager->priv; + char *default_config_filename; + gboolean result; + + default_config_filename = gconf_client_get_string (priv->client, CONF_KEY_DEFAULT_CONFIGURATION_FILE, NULL); + if (!default_config_filename) + return FALSE; + + result = apply_configuration_from_filename (manager, default_config_filename, TRUE, timestamp, NULL); + + g_free (default_config_filename); + return result; +} + gboolean gsd_xrandr_manager_start (GsdXrandrManager *manager, GError **error) @@ -2123,7 +2140,8 @@ gsd_xrandr_manager_start (GsdXrandrManager *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 */ - apply_default_boot_configuration (manager, GDK_CURRENT_TIME); + if (!apply_default_configuration_from_file (manager, GDK_CURRENT_TIME)) + apply_default_boot_configuration (manager, GDK_CURRENT_TIME); gdk_window_add_filter (gdk_get_default_root_window(), (GdkFilterFunc)event_filter, |