From ae0d3afcc39b13f01e0fbac74cf583f67a229382 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Fri, 08 Jul 2005 10:03:38 +0000 Subject: Do not leak the target window 2005-07-08 Marco Pesenti Gritti * ps/ps-document.c: (ps_document_dispose), (ps_async_renderer_render_pixbuf): * ps/ps-document.h: Do not leak the target window --- diff --git a/ChangeLog b/ChangeLog index ae053b5..aa1a2d5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2005-07-08 Marco Pesenti Gritti + * ps/ps-document.c: (ps_document_dispose), + (ps_async_renderer_render_pixbuf): + * ps/ps-document.h: + + Do not leak the target window + +2005-07-08 Marco Pesenti Gritti + * shell/ev-application.c: (ev_application_init): Let tbe check file existence for us. diff --git a/ps/ps-document.c b/ps/ps-document.c index d1c5271..8dca8cf 100644 --- a/ps/ps-document.c +++ b/ps/ps-document.c @@ -178,6 +178,12 @@ ps_document_dispose (GObject *object) gs->input_buffer = NULL; } + if (gs->target_window) { + gtk_widget_destroy (gs->target_window); + gs->target_window = NULL; + gs->pstarget = NULL; + } + stop_interpreter (gs); G_OBJECT_CLASS (parent_class)->dispose (object); @@ -1197,15 +1203,13 @@ ps_async_renderer_render_pixbuf (EvAsyncRenderer *renderer, int page, double sca PSDocument *gs = PS_DOCUMENT (renderer); if (gs->pstarget == NULL) { - GtkWidget *widget; - - widget = gtk_window_new (GTK_WINDOW_POPUP); - gtk_widget_realize (widget); - gs->pstarget = widget->window; + gs->target_window = gtk_window_new (GTK_WINDOW_POPUP); + gtk_widget_realize (gs->target_window); + gs->pstarget = gs->target_window->window; g_assert (gs->pstarget != NULL); - g_signal_connect (widget, "event", + g_signal_connect (gs->target_window, "event", G_CALLBACK (ps_document_widget_event), gs); } diff --git a/ps/ps-document.h b/ps/ps-document.h index 87eaddb..7ecad29 100644 --- a/ps/ps-document.h +++ b/ps/ps-document.h @@ -25,6 +25,7 @@ #define __PS_DOCUMENT_H__ #include +#include #include "ev-document.h" #include "ps.h" @@ -43,6 +44,7 @@ typedef struct _PSDocumentClass PSDocumentClass; struct _PSDocument { GObject object; + GtkWidget *target_window; GdkWindow *pstarget; GdkPixmap *bpixmap; long message_window; /* Used by ghostview to receive messages from app */ -- cgit v0.9.1