Don't leak CSS
This commit is contained in:
		@ -35,10 +35,10 @@ enum {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
typedef struct _EekRendererPrivate
 | 
					typedef struct _EekRendererPrivate
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    LevelKeyboard *keyboard;
 | 
					    LevelKeyboard *keyboard; // unowned
 | 
				
			||||||
    PangoContext *pcontext;
 | 
					    PangoContext *pcontext; // owned
 | 
				
			||||||
    GtkCssProvider *css_provider;
 | 
					    GtkCssProvider *css_provider; // owned
 | 
				
			||||||
    GtkStyleContext *view_context;
 | 
					    GtkStyleContext *view_context; // owned
 | 
				
			||||||
    GtkStyleContext *button_context; // TODO: maybe move a copy to each button
 | 
					    GtkStyleContext *button_context; // TODO: maybe move a copy to each button
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    gdouble border_width;
 | 
					    gdouble border_width;
 | 
				
			||||||
@ -547,6 +547,9 @@ eek_renderer_finalize (GObject *object)
 | 
				
			|||||||
    EekRenderer        *self = EEK_RENDERER(object);
 | 
					    EekRenderer        *self = EEK_RENDERER(object);
 | 
				
			||||||
    EekRendererPrivate *priv = eek_renderer_get_instance_private (self);
 | 
					    EekRendererPrivate *priv = eek_renderer_get_instance_private (self);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    g_object_unref(priv->css_provider);
 | 
				
			||||||
 | 
					    g_object_unref(priv->view_context);
 | 
				
			||||||
 | 
					    g_object_unref(priv->button_context);
 | 
				
			||||||
    pango_font_description_free (priv->ascii_font);
 | 
					    pango_font_description_free (priv->ascii_font);
 | 
				
			||||||
    pango_font_description_free (priv->font);
 | 
					    pango_font_description_free (priv->font);
 | 
				
			||||||
    G_OBJECT_CLASS (eek_renderer_parent_class)->finalize (object);
 | 
					    G_OBJECT_CLASS (eek_renderer_parent_class)->finalize (object);
 | 
				
			||||||
@ -662,7 +665,6 @@ eek_renderer_new (LevelKeyboard  *keyboard,
 | 
				
			|||||||
    gtk_style_context_add_provider (priv->view_context,
 | 
					    gtk_style_context_add_provider (priv->view_context,
 | 
				
			||||||
        GTK_STYLE_PROVIDER(priv->css_provider),
 | 
					        GTK_STYLE_PROVIDER(priv->css_provider),
 | 
				
			||||||
        GTK_STYLE_PROVIDER_PRIORITY_USER);
 | 
					        GTK_STYLE_PROVIDER_PRIORITY_USER);
 | 
				
			||||||
    printf("view: %s\n", gtk_style_context_to_string(priv->view_context, GTK_STYLE_CONTEXT_PRINT_SHOW_STYLE));
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* Create a style context for the buttons */
 | 
					    /* Create a style context for the buttons */
 | 
				
			||||||
    path = gtk_widget_path_new();
 | 
					    path = gtk_widget_path_new();
 | 
				
			||||||
@ -801,16 +803,6 @@ eek_renderer_set_scale_factor (EekRenderer *renderer, gint scale)
 | 
				
			|||||||
    priv->scale_factor = scale;
 | 
					    priv->scale_factor = scale;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PangoLayout *
 | 
					 | 
				
			||||||
eek_renderer_create_pango_layout (EekRenderer  *renderer)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    g_return_val_if_fail (EEK_IS_RENDERER(renderer), NULL);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    EekRendererPrivate *priv = eek_renderer_get_instance_private (renderer);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return pango_layout_new (priv->pcontext);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cairo_surface_t *
 | 
					cairo_surface_t *
 | 
				
			||||||
eek_renderer_get_icon_surface (const gchar *icon_name,
 | 
					eek_renderer_get_icon_surface (const gchar *icon_name,
 | 
				
			||||||
                               gint size,
 | 
					                               gint size,
 | 
				
			||||||
 | 
				
			|||||||
@ -74,8 +74,6 @@ gdouble          eek_renderer_get_scale        (EekRenderer     *renderer);
 | 
				
			|||||||
void             eek_renderer_set_scale_factor (EekRenderer     *renderer,
 | 
					void             eek_renderer_set_scale_factor (EekRenderer     *renderer,
 | 
				
			||||||
                                                gint             scale);
 | 
					                                                gint             scale);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PangoLayout     *eek_renderer_create_pango_layout
 | 
					 | 
				
			||||||
                                               (EekRenderer     *renderer);
 | 
					 | 
				
			||||||
void             eek_renderer_render_button       (EekRenderer     *renderer,
 | 
					void             eek_renderer_render_button       (EekRenderer     *renderer,
 | 
				
			||||||
                                                cairo_t         *cr,
 | 
					                                                cairo_t         *cr,
 | 
				
			||||||
                                                struct button_place *place,
 | 
					                                                struct button_place *place,
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user