X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;ds=sidebyside;f=ps%2Fps-document.c;h=28c43745359485eaaf5202c4322942bffeebc748;hb=96ab01a78dafd62f121b11010a9857cbd9a7922c;hp=d1c5271bc39e9c1b3c7caf5ada53f4e93bc38b49;hpb=6c9c79f7cd5e86a5d90231f6b2f7ed2db9b7886f;p=evince.git diff --git a/ps/ps-document.c b/ps/ps-document.c index d1c5271b..28c43745 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); } @@ -1265,29 +1269,6 @@ ps_document_get_orientation (EvDocument *document) return orientation; } -static void -ps_document_set_orientation (EvDocument *document, EvOrientation orientation) -{ - PSDocument *ps = PS_DOCUMENT (document); - - g_return_if_fail (ps != NULL); - - switch (orientation) { - case EV_ORIENTATION_PORTRAIT: - ps->orientation = GTK_GS_ORIENTATION_PORTRAIT; - break; - case EV_ORIENTATION_LANDSCAPE: - ps->orientation = GTK_GS_ORIENTATION_LANDSCAPE; - break; - case EV_ORIENTATION_UPSIDEDOWN: - ps->orientation = GTK_GS_ORIENTATION_UPSIDEDOWN; - break; - case EV_ORIENTATION_SEASCAPE: - ps->orientation = GTK_GS_ORIENTATION_SEASCAPE; - break; - } -} - static void ps_document_document_iface_init (EvDocumentIface *iface) { @@ -1297,7 +1278,6 @@ ps_document_document_iface_init (EvDocumentIface *iface) iface->get_n_pages = ps_document_get_n_pages; iface->get_page_size = ps_document_get_page_size; iface->get_info = ps_document_get_info; - iface->set_orientation = ps_document_set_orientation; iface->get_orientation = ps_document_get_orientation; } @@ -1309,7 +1289,8 @@ ps_async_renderer_iface_init (EvAsyncRendererIface *iface) static void ps_document_ps_export_begin (EvPSExporter *exporter, const char *filename, - int first_page, int last_page) + int first_page, int last_page, + double width, double height, gboolean duplex) { PSDocument *document = PS_DOCUMENT (exporter); @@ -1320,11 +1301,11 @@ ps_document_ps_export_begin (EvPSExporter *exporter, const char *filename, } static void -ps_document_ps_export_do_page (EvPSExporter *exporter, int page) +ps_document_ps_export_do_page (EvPSExporter *exporter, EvRenderContext *rc) { PSDocument *document = PS_DOCUMENT (exporter); - document->ps_export_pagelist[page] = 1; + document->ps_export_pagelist[rc->page] = 1; } static void