diff --git a/debian/patches/0008-Allow-tweaking-some-settings-for-Ubuntu-Dock.patch b/debian/patches/0008-Allow-tweaking-some-settings-for-Ubuntu-Dock.patch index 51c47477..3ed2922e 100644 --- a/debian/patches/0008-Allow-tweaking-some-settings-for-Ubuntu-Dock.patch +++ b/debian/patches/0008-Allow-tweaking-some-settings-for-Ubuntu-Dock.patch @@ -101,6 +101,9 @@ index 000000000..77627e982 +#define CURSOR_THEME_KEY "cursor-theme" +#define ICON_THEME_KEY "icon-theme" + ++#define USERTHEME_SCHEMA "org.gnome.shell.extensions.user-theme" ++#define SHELL_THEME_KEY "name" ++ +struct _CcUbuntuPanel { + CcPanel parent_instance; + @@ -119,6 +122,7 @@ index 000000000..77627e982 + + GSettings *dock_settings; + GSettings *interface_settings; ++ GSettings *usertheme_settings; + gint dock_placement_primary_index; + CcDisplayConfigManager *display_config_manager; +}; @@ -132,6 +136,7 @@ index 000000000..77627e982 + + g_clear_object (&self->dock_settings); + g_clear_object (&self->interface_settings); ++ g_clear_object (&self->usertheme_settings); + g_clear_object (&self->display_config_manager); + + G_OBJECT_CLASS (cc_ubuntu_panel_parent_class)->dispose (object); @@ -226,6 +231,7 @@ index 000000000..77627e982 +on_theme_box_selected_children_changed (CcUbuntuPanel *self) +{ + const gchar *gtk_theme = NULL; ++ const gchar *shell_theme = NULL; + g_autoptr(GList) selected = NULL; + + selected = gtk_flow_box_get_selected_children (self->theme_box); @@ -233,15 +239,27 @@ index 000000000..77627e982 + { + GtkFlowBoxChild *selected_item = GTK_FLOW_BOX_CHILD (g_list_nth_data (selected, 0)); + if (selected_item == self->theme_standard) -+ gtk_theme = "Yaru"; ++ { ++ gtk_theme = "Yaru"; ++ shell_theme = "Yaru"; ++ } + else if (selected_item == self->theme_light) -+ gtk_theme = "Yaru-light"; ++ { ++ gtk_theme = "Yaru-light"; ++ shell_theme = "Yaru"; ++ } + else if (selected_item == self->theme_dark) -+ gtk_theme = "Yaru-dark"; ++ { ++ gtk_theme = "Yaru-dark"; ++ shell_theme = "Yaru-dark"; ++ } + } + + if (gtk_theme != NULL) -+ g_settings_set_string (self->interface_settings, GTK_THEME_KEY, gtk_theme); ++ { ++ g_settings_set_string (self->interface_settings, GTK_THEME_KEY, gtk_theme); ++ g_settings_set_string (self->usertheme_settings, SHELL_THEME_KEY, shell_theme); ++ } +} + +static void @@ -394,6 +412,8 @@ index 000000000..77627e982 + g_signal_connect_object (self->interface_settings, "changed::" ICON_THEME_KEY, + G_CALLBACK (on_interface_settings_changed), self, G_CONNECT_SWAPPED); + ++ self->usertheme_settings = g_settings_new (USERTHEME_SCHEMA); ++ + /* Only load if we have ubuntu dock or dash to dock installed */ + schema = g_settings_schema_source_lookup (g_settings_schema_source_get_default (), UBUNTU_DOCK_SCHEMA, TRUE); + if (!schema)