summaryrefslogtreecommitdiff
path: root/plugins/xrandr
diff options
context:
space:
mode:
authorGary Lin <[email protected]>2010-10-29 12:31:07 -0500
committerBenjamin Valentin <[email protected]>2012-03-16 09:29:10 +0100
commit60b0ab065772c3f109d7471c0d6d814d477f9803 (patch)
tree9ea87b77f5e52d79af08951dcbc22b0b86227981 /plugins/xrandr
parent5da7f7c6ef1e59bba1f3aa7fa24fcaa44187704e (diff)
downloadmate-settings-daemon-60b0ab065772c3f109d7471c0d6d814d477f9803.tar.bz2
mate-settings-daemon-60b0ab065772c3f109d7471c0d6d814d477f9803.tar.xz
(randr) bnc#647304 - If the stored configuration fails at startup, use the fallback configurations
Previously, if a stored configuration existed but it could not be applied due to nonmatching monitors, we would do nothing else - potentially leaving the user in whatever startup state was used by the X server. Now, in that condition we simply fall back to trying the system-global configuration or the boot-time configuration. Signed-off-by: Federico Mena Quintero <[email protected]>
Diffstat (limited to 'plugins/xrandr')
-rw-r--r--plugins/xrandr/msd-xrandr-manager.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/plugins/xrandr/msd-xrandr-manager.c b/plugins/xrandr/msd-xrandr-manager.c
index e74b7d9..75e41dd 100644
--- a/plugins/xrandr/msd-xrandr-manager.c
+++ b/plugins/xrandr/msd-xrandr-manager.c
@@ -2168,10 +2168,11 @@ apply_intended_configuration (MsdXrandrManager *manager, const char *intended_fi
gboolean result;
my_error = NULL;
- result = apply_configuration_from_filename (manager, intended_filename, FALSE, timestamp, &my_error);
+ result = apply_configuration_from_filename (manager, intended_filename, TRUE, timestamp, &my_error);
if (!result) {
if (my_error) {
- if (!g_error_matches (my_error, G_FILE_ERROR, G_FILE_ERROR_NOENT))
+ if (!g_error_matches (my_error, G_FILE_ERROR, G_FILE_ERROR_NOENT) &&
+ !g_error_matches (my_error, MATE_RR_ERROR, MATE_RR_ERROR_NO_MATCHING_CONFIG))
error_message (manager, _("Could not apply the stored configuration for monitors"), my_error, NULL);
g_error_free (my_error);