diff options
author | Alberts Muktupāvels <alberts.muktupavels@gmail.com> | 2016-02-04 10:32:02 +0200 |
---|---|---|
committer | Alberts Muktupāvels <alberts.muktupavels@gmail.com> | 2016-02-07 04:05:40 +0200 |
commit | 06848ada66d821a7bdde18751f050619e4c136d6 (patch) | |
tree | cc584102d7b4c24fa1c310e21b1a428a25c27bc4 /libmetacity/meta-theme-gtk.c | |
parent | c1d434c7fe4b4e31e616f9ebcf50bce6184a6031 (diff) | |
download | metacity-06848ada66d821a7bdde18751f050619e4c136d6.tar.gz |
libmetacity: don't use GtkSettings to change gtk-theme-name
Diffstat (limited to 'libmetacity/meta-theme-gtk.c')
-rw-r--r-- | libmetacity/meta-theme-gtk.c | 42 |
1 files changed, 26 insertions, 16 deletions
diff --git a/libmetacity/meta-theme-gtk.c b/libmetacity/meta-theme-gtk.c index 866bd962..950514e6 100644 --- a/libmetacity/meta-theme-gtk.c +++ b/libmetacity/meta-theme-gtk.c @@ -26,27 +26,39 @@ struct _MetaThemeGtk { - MetaThemeImpl parent; + MetaThemeImpl parent; + + gchar *name; }; G_DEFINE_TYPE (MetaThemeGtk, meta_theme_gtk, META_TYPE_THEME_IMPL) +static void +meta_theme_gtk_finalize (GObject *object) +{ + MetaThemeGtk *gtk; + + gtk = META_THEME_GTK (object); + + g_free (gtk->name); + + G_OBJECT_CLASS (meta_theme_gtk_parent_class)->finalize (object); +} + static gboolean meta_theme_gtk_load (MetaThemeImpl *impl, const gchar *name, GError **error) { - GtkSettings *settings; + MetaThemeGtk *gtk; MetaFrameType type; g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - settings = gtk_settings_get_default (); - - if (settings == NULL) - return FALSE; + gtk = META_THEME_GTK (impl); - g_object_set (settings, "gtk-theme-name", name, NULL); + g_free (gtk->name); + gtk->name = g_strdup (name); for (type = 0; type < META_FRAME_TYPE_LAST; type++) { @@ -126,17 +138,11 @@ meta_theme_gtk_load (MetaThemeImpl *impl, static gchar * meta_theme_gtk_get_name (MetaThemeImpl *impl) { - GtkSettings *settings; - gchar *name; + MetaThemeGtk *gtk; - settings = gtk_settings_get_default (); + gtk = META_THEME_GTK (impl); - if (settings == NULL) - return NULL; - - g_object_get (settings, "gtk-theme-name", &name, NULL); - - return name; + return gtk->name; } static void @@ -1022,10 +1028,14 @@ meta_theme_gtk_draw_frame (MetaThemeImpl *impl, static void meta_theme_gtk_class_init (MetaThemeGtkClass *gtk_class) { + GObjectClass *object_class; MetaThemeImplClass *impl_class; + object_class = G_OBJECT_CLASS (gtk_class); impl_class = META_THEME_IMPL_CLASS (gtk_class); + object_class->finalize = meta_theme_gtk_finalize; + impl_class->load = meta_theme_gtk_load; impl_class->get_name = meta_theme_gtk_get_name; impl_class->get_frame_borders = meta_theme_gtk_get_frame_borders; |