From 2b344d828d68b28027426df8ce71e4d034a0ebba Mon Sep 17 00:00:00 2001 From: Jonathan Blandford Date: Wed, 5 Jan 2005 03:33:16 +0000 Subject: [PATCH] poor man's dropshadow. Tue Jan 4 22:32:32 2005 Jonathan Blandford * pdf/xpdf/pdf-document.cc (pdf_document_thumbnails_get_page_pixbuf): poor man's dropshadow. --- ChangeLog | 5 +++++ pdf/xpdf/pdf-document.cc | 31 ++++++++++++++++++++++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 57c0f417..72838591 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Tue Jan 4 22:32:32 2005 Jonathan Blandford + + * pdf/xpdf/pdf-document.cc + (pdf_document_thumbnails_get_page_pixbuf): poor man's dropshadow. + Tue Jan 4 21:25:05 2005 Jonathan Blandford * pdf/xpdf/pdf-document.cc: Do real thumbnailing of PDF files. diff --git a/pdf/xpdf/pdf-document.cc b/pdf/xpdf/pdf-document.cc index 51ade189..4abe9ff3 100644 --- a/pdf/xpdf/pdf-document.cc +++ b/pdf/xpdf/pdf-document.cc @@ -1022,6 +1022,9 @@ pdf_document_thumbnails_get_page_pixbuf (PdfDocument *pdf_document, GdkPixmap *pixmap; GDKSplashOutputDev *output; GdkPixbuf *pixbuf; + GdkPixbuf *shadow; + gint rowstride; + guchar *data; pixmap = gdk_pixmap_new (pdf_document->target, width, height, -1); @@ -1046,7 +1049,33 @@ pdf_document_thumbnails_get_page_pixbuf (PdfDocument *pdf_document, width, height); gdk_drawable_unref (pixmap); delete output; - return pixbuf; + + shadow = gdk_pixbuf_new (GDK_COLORSPACE_RGB, + TRUE, 8, + width + 4, + height + 4); + gdk_pixbuf_fill (shadow, 0x000000ff); + gdk_pixbuf_copy_area (pixbuf, 0, 0, + width, + height, + shadow, + 1, 1); + g_object_unref (pixbuf); + + /* Add the corner */ + data = gdk_pixbuf_get_pixels (shadow); + rowstride = gdk_pixbuf_get_rowstride (shadow); + data [(width + 2) * 4 + 3] = 0; + data [(width + 3) * 4 + 3] = 0; + data [(width + 2) * 4 + (rowstride * 1) + 3] = 0; + data [(width + 3) * 4 + (rowstride * 1) + 3] = 0; + + data [(height + 2) * rowstride + 3] = 0; + data [(height + 3) * rowstride + 3] = 0; + data [(height + 2) * rowstride + 4 + 3] = 0; + data [(height + 3) * rowstride + 4 + 3] = 0; + + return shadow; } static GdkPixbuf * -- 2.43.5