From 44eab3deb5f1a748d95bd250841cfd500085a48f Mon Sep 17 00:00:00 2001 From: Martin Kretzschmar Date: Fri, 21 Jan 2005 13:29:36 +0000 Subject: [PATCH] add page_[xy]_offset fields. * ps/ps-document.h: add page_[xy]_offset fields. * ps/ps-document.c (ps_document_set_page_offset) (ps_document_render): Keep offset in consideration in a few places. Bug #164752 "postscript documents are not centered in window" --- ChangeLog | 7 +++++++ ps/ps-document.c | 22 +++++++++++++++++++--- ps/ps-document.h | 3 +++ 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7c1eb159..b6f5f5bf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2005-01-21 Martin Kretzschmar + * ps/ps-document.h: add page_[xy]_offset fields. + + * ps/ps-document.c (ps_document_set_page_offset) + (ps_document_render): Keep offset in consideration in a few + places. Bug #164752 "postscript documents are not centered in + window" + * data/evince.desktop.in (X-GNOME-Bugzilla-Product): s/gpdf/evince/. Spotted by Stephane Loeuillet. diff --git a/ps/ps-document.c b/ps/ps-document.c index 6723edb6..848d1a70 100644 --- a/ps/ps-document.c +++ b/ps/ps-document.c @@ -1773,6 +1773,10 @@ ps_document_set_page_offset (EvDocument *document, int x, int y) { + PSDocument *gs = PS_DOCUMENT (document); + + gs->page_x_offset = x; + gs->page_y_offset = y; } static void @@ -1799,6 +1803,8 @@ ps_document_render (EvDocument *document, int clip_height) { PSDocument *gs = PS_DOCUMENT (document); + GdkRectangle page; + GdkRectangle draw; GdkGC *gc; if (gs->pstarget == NULL || @@ -1806,13 +1812,23 @@ ps_document_render (EvDocument *document, return; } + page.x = gs->page_x_offset; + page.y = gs->page_y_offset; + page.width = gs->width; + page.height = gs->height; + + draw.x = clip_x; + draw.y = clip_y; + draw.width = clip_width; + draw.height = clip_height; + gc = gdk_gc_new (gs->pstarget); gdk_draw_drawable (gs->pstarget, gc, gs->bpixmap, - clip_x, clip_y, - clip_x, clip_y, - clip_width, clip_height); + draw.x - page.x, draw.y - page.y, + draw.x, draw.y, + draw.width, draw.height); g_object_unref (gc); } diff --git a/ps/ps-document.h b/ps/ps-document.h index dd5555ed..fb58ca4b 100644 --- a/ps/ps-document.h +++ b/ps/ps-document.h @@ -107,6 +107,9 @@ struct _PSDocument { const gchar *gs_status; /* PSDocument status */ guint avail_w, avail_h; + + int page_x_offset; + int page_y_offset; }; struct _PSDocumentClass { -- 2.43.5