From 7399cf0e5de076aae5cc2b3545f07c2af4bab5be Mon Sep 17 00:00:00 2001 From: Nickolay V. Shmyrev Date: Thu, 25 Aug 2005 20:10:01 +0000 Subject: Fix rotation of thumbnails, ported to new API. Moved library dependencies * djvu/djvu-document.c: (djvu_document_thumbnails_get_thumbnail): * dvi/Makefile.am: * dvi/dvi-document.c: (dvi_document_thumbnails_get_thumbnail): * dvi/mdvi-lib/Makefile.am: Fix rotation of thumbnails, ported to new API. Moved library dependencies earlier, probably it will fix linkage problem. --- diff --git a/ChangeLog b/ChangeLog index 739d88c..073eafb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2005-08-26 Nickolay V. Shmyrev + + * djvu/djvu-document.c: (djvu_document_thumbnails_get_thumbnail): + * dvi/Makefile.am: + * dvi/dvi-document.c: (dvi_document_thumbnails_get_thumbnail): + * dvi/mdvi-lib/Makefile.am: + + Fix rotation of thumbnails, ported to new API. Moved library + dependencies earlier, probably it will fix linkage problem. + Thu Aug 25 02:32:32 2005 Jonathan Blandford * backend/ev-document-misc.c: diff --git a/djvu/djvu-document.c b/djvu/djvu-document.c index 8257b3e..9f22537 100644 --- a/djvu/djvu-document.c +++ b/djvu/djvu-document.c @@ -259,15 +259,10 @@ djvu_document_thumbnails_get_thumbnail (EvDocumentThumbnails *document, djvu_document_thumbnails_get_dimensions (document, page, width, &thumb_width, &thumb_height); - if (border) { - pixbuf = ev_document_misc_get_thumbnail_frame (thumb_width, thumb_height, NULL); - pixels = gdk_pixbuf_get_pixels (pixbuf) + gdk_pixbuf_get_rowstride (pixbuf) + 4; - } else { - pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8, - thumb_width, thumb_height); - gdk_pixbuf_fill (pixbuf, 0xffffffff); - pixels = gdk_pixbuf_get_pixels (pixbuf); - } + pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8, + thumb_width, thumb_height); + gdk_pixbuf_fill (pixbuf, 0xffffffff); + pixels = gdk_pixbuf_get_pixels (pixbuf); while (ddjvu_thumbnail_status (djvu_document->d_document, page, 1) < DDJVU_JOB_OK) { ddjvu_message_wait (djvu_document->d_context); @@ -282,6 +277,12 @@ djvu_document_thumbnails_get_thumbnail (EvDocumentThumbnails *document, rotated_pixbuf = gdk_pixbuf_rotate_simple (pixbuf, 360 - rotation); g_object_unref (pixbuf); + + if (border) { + GdkPixbuf *tmp_pixbuf = rotated_pixbuf; + rotated_pixbuf = ev_document_misc_get_thumbnail_frame (-1, -1, 0, tmp_pixbuf); + g_object_unref (tmp_pixbuf); + } return rotated_pixbuf; } diff --git a/dvi/Makefile.am b/dvi/Makefile.am index efa83da..f9de1e4 100644 --- a/dvi/Makefile.am +++ b/dvi/Makefile.am @@ -17,12 +17,8 @@ libgtkdvi_la_SOURCES = \ fonts.c \ fonts.h -libgtkdvi_la_LIBADD = mdvi-lib/libmdvi.la \ - $(DVI_LIBS) -lkpathsea +libgtkdvi_la_LIBADD = mdvi-lib/libmdvi.la -if WITH_TYPE1_FONTS -libgtkdvi_la_LIBADD += -lt1lib -endif diff --git a/dvi/dvi-document.c b/dvi/dvi-document.c index 1bb465c..d462758 100644 --- a/dvi/dvi-document.c +++ b/dvi/dvi-document.c @@ -310,19 +310,15 @@ dvi_document_thumbnails_get_thumbnail (EvDocumentThumbnails *document, pixbuf = mdvi_pixbuf_device_get_pixbuf (&dvi_document->context->device); g_mutex_unlock (dvi_context_mutex); - - if (border) { - border_pixbuf = ev_document_misc_get_thumbnail_frame (thumb_width, thumb_height, NULL); - gdk_pixbuf_copy_area (pixbuf, 0, 0, - thumb_width - 2, thumb_height - 2, - border_pixbuf, 2, 2); - g_object_unref (pixbuf); - pixbuf = border_pixbuf; - } - rotated_pixbuf = gdk_pixbuf_rotate_simple (pixbuf, 360 - rotation); g_object_unref (pixbuf); + + if (border) { + GdkPixbuf *tmp_pixbuf = rotated_pixbuf; + rotated_pixbuf = ev_document_misc_get_thumbnail_frame (-1, -1, 0, tmp_pixbuf); + g_object_unref (tmp_pixbuf); + } return rotated_pixbuf; } diff --git a/dvi/mdvi-lib/Makefile.am b/dvi/mdvi-lib/Makefile.am index aa9ef94..4eec509 100644 --- a/dvi/mdvi-lib/Makefile.am +++ b/dvi/mdvi-lib/Makefile.am @@ -38,4 +38,9 @@ libmdvi_la_SOURCES = \ util.c \ vf.c +libmdvi_la_LIBADD = \ + -lkpathsea +if WITH_TYPE1_FONTS +libmdvi_la_LIBADD += -lt1lib +endif -- cgit v0.9.1