File gnome-settings-daemon-bnc478772-ignore-user-if-xorg-conf-is-newer.diff of Package gnome-settings-daemon
diff --git a/plugins/xrandr/gsd-xrandr-manager.c b/plugins/xrandr/gsd-xrandr-manager.c
index e3c16b6..3d8f37d 100644
--- a/plugins/xrandr/gsd-xrandr-manager.c
+++ b/plugins/xrandr/gsd-xrandr-manager.c
@@ -28,6 +28,7 @@
#include <unistd.h>
#include <string.h>
#include <errno.h>
+#include <sys/stat.h>
#include <locale.h>
@@ -1593,6 +1594,26 @@ out:
g_free (intended_filename);
}
+static gboolean
+user_configuration_is_newer_than_xorg (GsdXrandrManager *manager)
+{
+ char *intended_filename;
+ int result;
+ struct stat xorg_stat, user_stat;
+
+ if (stat ("/etc/X11/xorg.conf", &xorg_stat) != 0)
+ return TRUE;
+
+ intended_filename = gnome_rr_config_get_intended_filename ();
+ result = stat (intended_filename, &user_stat);
+ g_free (intended_filename);
+
+ if (result != 0)
+ return FALSE;
+
+ return user_stat.st_mtime > xorg_stat.st_mtime;
+}
+
gboolean
gsd_xrandr_manager_start (GsdXrandrManager *manager,
GError **error)
@@ -1632,7 +1653,8 @@ gsd_xrandr_manager_start (GsdXrandrManager *manager,
gdk_error_trap_pop ();
}
- apply_stored_configuration_at_startup (manager);
+ if (user_configuration_is_newer_than_xorg (manager))
+ apply_stored_configuration_at_startup (manager);
gdk_window_add_filter (gdk_get_default_root_window(),
(GdkFilterFunc)event_filter,