Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
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
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
-rw-r--r--ChangeLog8
-rw-r--r--ps/ps-document.c16
-rw-r--r--ps/ps-document.h2
3 files changed, 20 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index ae053b5..aa1a2d5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
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
+
+2005-07-08 Marco Pesenti Gritti <mpg@redhat.com>
+
* 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 <sys/types.h>
+#include <gtk/gtkwidget.h>
#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 */