X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=ps%2Fps-document.c;h=8dca8cf663c0e3a31cabe54dc37ecfaa86a439bb;hb=b2e7a9f7c44d07a2af27c8b7a52c9fc4e19f615c;hp=d1c5271bc39e9c1b3c7caf5ada53f4e93bc38b49;hpb=6c9c79f7cd5e86a5d90231f6b2f7ed2db9b7886f;p=evince.git diff --git a/ps/ps-document.c b/ps/ps-document.c index d1c5271b..8dca8cf6 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); }