summaryrefslogtreecommitdiff
path: root/libmetacity/meta-theme-gtk.c
diff options
context:
space:
mode:
authorAlberts Muktupāvels <alberts.muktupavels@gmail.com>2016-02-04 10:32:02 +0200
committerAlberts Muktupāvels <alberts.muktupavels@gmail.com>2016-02-07 04:05:40 +0200
commit06848ada66d821a7bdde18751f050619e4c136d6 (patch)
treecc584102d7b4c24fa1c310e21b1a428a25c27bc4 /libmetacity/meta-theme-gtk.c
parentc1d434c7fe4b4e31e616f9ebcf50bce6184a6031 (diff)
downloadmetacity-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.c42
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;