Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/ps/ps-document.c
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <mpg@redhat.com>2005-07-08 10:03:38 (GMT)
committer Marco Pesenti Gritti <marco@src.gnome.org>2005-07-08 10:03:38 (GMT)
commitae0d3afcc39b13f01e0fbac74cf583f67a229382 (patch)
tree2017c0f3574ffb88453f650506e19efe896e8944 /ps/ps-document.c
parent2c3925fbeff020a1de5ed67a9625f9c5edc96944 (diff)
Do not leak the target window
2005-07-08 Marco Pesenti Gritti <mpg@redhat.com> * ps/ps-document.c: (ps_document_dispose), (ps_async_renderer_render_pixbuf): * ps/ps-document.h: Do not leak the target window
Diffstat (limited to 'ps/ps-document.c')
-rw-r--r--ps/ps-document.c16
1 files changed, 10 insertions, 6 deletions
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);
}