Blame SOURCES/0001-global-Allow-overriding-the-override-schema.patch

c7fac9
From 1a614826eea7ba5da2796e0eb3b62a6bb7609040 Mon Sep 17 00:00:00 2001
c7fac9
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
c7fac9
Date: Wed, 11 Oct 2017 00:36:18 +0200
c7fac9
Subject: [PATCH] global: Allow overriding the override schema
c7fac9
c7fac9
---
c7fac9
 src/main.c         | 11 ++++++++++-
c7fac9
 src/shell-global.c | 20 +++++++++++++++++++-
c7fac9
 2 files changed, 29 insertions(+), 2 deletions(-)
c7fac9
c7fac9
diff --git a/src/main.c b/src/main.c
c7fac9
index 857877b0b..6ebea4809 100644
c7fac9
--- a/src/main.c
c7fac9
+++ b/src/main.c
c7fac9
@@ -38,6 +38,7 @@ extern GType gnome_shell_plugin_get_type (void);
c7fac9
 
c7fac9
 static gboolean is_gdm_mode = FALSE;
c7fac9
 static char *session_mode = NULL;
c7fac9
+static char *override_schema = NULL;
c7fac9
 static int caught_signal = 0;
c7fac9
 
c7fac9
 #define DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER 1
c7fac9
@@ -450,6 +451,12 @@ GOptionEntry gnome_shell_options[] = {
c7fac9
     N_("List possible modes"),
c7fac9
     NULL
c7fac9
   },
c7fac9
+  {
c7fac9
+    "override-schema", 0, 0, G_OPTION_ARG_STRING,
c7fac9
+    &override_schema,
c7fac9
+    N_("Override the override schema"),
c7fac9
+    "SCHEMA"
c7fac9
+  },
c7fac9
   { NULL }
c7fac9
 };
c7fac9
 
c7fac9
@@ -507,7 +514,9 @@ main (int argc, char **argv)
c7fac9
   if (session_mode == NULL)
c7fac9
     session_mode = is_gdm_mode ? (char *)"gdm" : (char *)"user";
c7fac9
 
c7fac9
-  _shell_global_init ("session-mode", session_mode, NULL);
c7fac9
+  _shell_global_init ("session-mode", session_mode,
c7fac9
+                      "override-schema", override_schema,
c7fac9
+                      NULL);
c7fac9
 
c7fac9
   shell_prefs_init ();
c7fac9
 
c7fac9
diff --git a/src/shell-global.c b/src/shell-global.c
c7fac9
index c67ac4e4a..961fd3a70 100644
c7fac9
--- a/src/shell-global.c
c7fac9
+++ b/src/shell-global.c
c7fac9
@@ -65,6 +65,7 @@ struct _ShellGlobal {
c7fac9
   MetaScreen *meta_screen;
c7fac9
 
c7fac9
   char *session_mode;
c7fac9
+  char *override_schema;
c7fac9
 
c7fac9
   XserverRegion input_region;
c7fac9
 
c7fac9
@@ -96,6 +97,7 @@ enum {
c7fac9
   PROP_0,
c7fac9
 
c7fac9
   PROP_SESSION_MODE,
c7fac9
+  PROP_OVERRIDE_SCHEMA,
c7fac9
   PROP_SCREEN,
c7fac9
   PROP_DISPLAY,
c7fac9
   PROP_SCREEN_WIDTH,
c7fac9
@@ -138,6 +140,10 @@ shell_global_set_property(GObject         *object,
c7fac9
       g_clear_pointer (&global->session_mode, g_free);
c7fac9
       global->session_mode = g_ascii_strdown (g_value_get_string (value), -1);
c7fac9
       break;
c7fac9
+    case PROP_OVERRIDE_SCHEMA:
c7fac9
+      g_clear_pointer (&global->override_schema, g_free);
c7fac9
+      global->override_schema = g_value_dup_string (value);
c7fac9
+      break;
c7fac9
     case PROP_FRAME_TIMESTAMPS:
c7fac9
       global->frame_timestamps = g_value_get_boolean (value);
c7fac9
       break;
c7fac9
@@ -163,6 +169,9 @@ shell_global_get_property(GObject         *object,
c7fac9
     case PROP_SESSION_MODE:
c7fac9
       g_value_set_string (value, shell_global_get_session_mode (global));
c7fac9
       break;
c7fac9
+    case PROP_OVERRIDE_SCHEMA:
c7fac9
+      g_value_set_string (value, global->override_schema);
c7fac9
+      break;
c7fac9
     case PROP_SCREEN:
c7fac9
       g_value_set_object (value, global->meta_screen);
c7fac9
       break;
c7fac9
@@ -368,6 +377,13 @@ shell_global_class_init (ShellGlobalClass *klass)
c7fac9
                                    g_param_spec_string ("session-mode",
c7fac9
                                                         "Session Mode",
c7fac9
                                                         "The session mode to use",
c7fac9
+                                                        NULL,
c7fac9
+                                                        G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
c7fac9
+  g_object_class_install_property (gobject_class,
c7fac9
+                                   PROP_OVERRIDE_SCHEMA,
c7fac9
+                                   g_param_spec_string ("override-schema",
c7fac9
+                                                        "Override Schema",
c7fac9
+                                                        "The override schema to use",
c7fac9
                                                         "user",
c7fac9
                                                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
c7fac9
   g_object_class_install_property (gobject_class,
c7fac9
@@ -1360,7 +1376,9 @@ shell_global_get_overrides_settings (ShellGlobal *global)
c7fac9
 
c7fac9
   if (!settings)
c7fac9
     {
c7fac9
-      if (strcmp (global->session_mode, "classic") == 0)
c7fac9
+      if (global->override_schema != NULL)
c7fac9
+        schema = global->override_schema;
c7fac9
+      else if (strcmp (global->session_mode, "classic") == 0)
c7fac9
         schema = "org.gnome.shell.extensions.classic-overrides";
c7fac9
       else if (strcmp (global->session_mode, "user") == 0)
c7fac9
         schema = "org.gnome.shell.overrides";
c7fac9
-- 
c7fac9
2.20.1
c7fac9