void meta_frame_style_set_unref (MetaFrameStyleSet *style_set) { g_return_if_fail (style_set != NULL); g_return_if_fail (style_set->refcount > 0); style_set->refcount -= 1; if (style_set->refcount == 0) { int i; for (i = 0; i < META_FRAME_RESIZE_LAST; i++) { free_focus_styles (style_set->normal_styles[i]); free_focus_styles (style_set->shaded_styles[i]); } free_focus_styles (style_set->maximized_styles); free_focus_styles (style_set->tiled_left_styles); free_focus_styles (style_set->tiled_right_styles); free_focus_styles (style_set->maximized_and_shaded_styles); free_focus_styles (style_set->tiled_left_and_shaded_styles); free_focus_styles (style_set->tiled_right_and_shaded_styles); if (style_set->parent) meta_frame_style_set_unref (style_set->parent); g_free (style_set); } }
void meta_theme_impl_add_style_set (MetaThemeImpl *impl, MetaFrameType type, MetaFrameStyleSet *style_set) { MetaThemeImplPrivate *priv; priv = meta_theme_impl_get_instance_private (impl); if (priv->style_sets_by_type[type]) meta_frame_style_set_unref (priv->style_sets_by_type[type]); priv->style_sets_by_type[type] = style_set; }
static void meta_theme_impl_dispose (GObject *object) { MetaThemeImpl *impl; MetaThemeImplPrivate *priv; gint i; impl = META_THEME_IMPL (object); priv = meta_theme_impl_get_instance_private (impl); for (i = 0; i < META_FRAME_TYPE_LAST; i++) { if (priv->style_sets_by_type[i]) { meta_frame_style_set_unref (priv->style_sets_by_type[i]); priv->style_sets_by_type[i] = NULL; } } G_OBJECT_CLASS (meta_theme_impl_parent_class)->dispose (object); }