Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --- adw-style-manager.c 2023-10-06 14:43:01.839834997 -0600
- +++ adw-style-manager-1.c 2023-10-06 15:42:30.413324079 -0600
- @@ -227,6 +227,20 @@
- g_object_notify_by_pspec (G_OBJECT (self), props[PROP_HIGH_CONTRAST]);
- }
- +adw_style_manager_theme_changed(GSettings *settings, const char *key, GdkDisplay *display)
- +{
- + char *theme = g_settings_get_string(settings, "gtk-theme");
- + if (!theme) {
- + theme = "Adwaita-empty";
- + }
- + gboolean is_dark_variant = NULL != strstr(theme, "-dark");
- +
- + g_object_set (gtk_settings_get_for_display (display),
- + "gtk-theme-name", theme,
- + "gtk-application-prefer-dark-theme", is_dark_variant,
- + NULL);
- +}
- +
- static void
- adw_style_manager_constructed (GObject *object)
- {
- @@ -238,9 +252,6 @@
- GtkSettings *settings = gtk_settings_get_for_display (self->display);
- gboolean prefer_dark_theme;
- - g_object_get (settings,
- - "gtk-application-prefer-dark-theme", &prefer_dark_theme,
- - NULL);
- if (prefer_dark_theme)
- warn_prefer_dark_theme (self);
- @@ -255,16 +266,16 @@
- g_object_set (gtk_settings_get_for_display (self->display),
- "gtk-theme-name", "Adwaita-empty",
- NULL);
- +
- + GSettingsSchemaSource *schema_source =
- + g_settings_schema_source_get_default();
- + GSettingsSchema *schema = g_settings_schema_source_lookup(
- + schema_source, "org.gnome.desktop.interface", true);
- + GSettings *interface_settings = g_settings_new_full(schema, NULL, NULL);
- +
- + adw_style_manager_theme_changed(interface_settings, "gtk-theme", self->display);
- + g_signal_connect (interface_settings, "changed", G_CALLBACK (adw_style_manager_theme_changed), self->display);
- - self->provider = gtk_css_provider_new ();
- - gtk_style_context_add_provider_for_display (self->display,
- - GTK_STYLE_PROVIDER (self->provider),
- - GTK_STYLE_PROVIDER_PRIORITY_THEME);
- -
- - self->colors_provider = gtk_css_provider_new ();
- - gtk_style_context_add_provider_for_display (self->display,
- - GTK_STYLE_PROVIDER (self->colors_provider),
- - GTK_STYLE_PROVIDER_PRIORITY_THEME);
- }
- self->animations_provider = gtk_css_provider_new ();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement