X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpsppire-output-view.c;h=3bf124469ea577cf712995163d4756ad064499aa;hb=8e4a0daa2b60e5ebf6fa4ff83ad98d78a8de0dff;hp=77fa537dce3a9004d8d859f245e116ff51cd5532;hpb=9021515cfa1489f9cd37e7440807bdd1d40de37a;p=pspp diff --git a/src/ui/gui/psppire-output-view.c b/src/ui/gui/psppire-output-view.c index 77fa537dce..3bf124469e 100644 --- a/src/ui/gui/psppire-output-view.c +++ b/src/ui/gui/psppire-output-view.c @@ -117,6 +117,13 @@ expose_event_callback (GtkWidget *widget, GdkEventExpose *event, gpointer data) return TRUE; } +static void +free_rendering (gpointer rendering_) +{ + struct xr_rendering *rendering = rendering_; + xr_rendering_destroy (rendering); +} + void psppire_output_view_put (struct psppire_output_view *view, const struct output_item *item) @@ -209,7 +216,7 @@ psppire_output_view_put (struct psppire_output_view *view, drawing_area = gtk_drawing_area_new (); - g_object_set_data (G_OBJECT (drawing_area), "rendering", r); + g_object_set_data_full (G_OBJECT (drawing_area), "rendering", r, free_rendering); g_signal_connect (drawing_area, "realize", G_CALLBACK (on_dwgarea_realize), view); g_signal_connect (drawing_area, "expose_event", @@ -606,6 +613,8 @@ psppire_output_view_destroy (struct psppire_output_view *view) if (view->print_settings != NULL) g_object_unref (view->print_settings); + xr_driver_destroy (view->xr); + free (view); }