summaryrefslogtreecommitdiff
path: root/community/mupdf
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2013-06-10 00:13:24 -0700
committerroot <root@rshg054.dnsready.net>2013-06-10 00:13:24 -0700
commit3f6e6048fea3b61c4d0b2c1e7385bc76882007a4 (patch)
treea5908cd9ffcf64cb46a2a661aff666dd4c9cccbf /community/mupdf
parent7b378b1b5b346bd49a5ab1652214fb34d03de3a9 (diff)
Mon Jun 10 00:13:23 PDT 2013
Diffstat (limited to 'community/mupdf')
-rw-r--r--community/mupdf/PKGBUILD40
-rw-r--r--community/mupdf/mupdf-1.2-fix-dirty-flag-handling.patch88
2 files changed, 111 insertions, 17 deletions
diff --git a/community/mupdf/PKGBUILD b/community/mupdf/PKGBUILD
index 5763c57a1..5dbd5a16b 100644
--- a/community/mupdf/PKGBUILD
+++ b/community/mupdf/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 87740 2013-04-05 21:06:47Z bpiotrowski $
+# $Id: PKGBUILD 92586 2013-06-09 13:32:10Z bpiotrowski $
# Maintainer: Bartłomiej Piotrowski <nospam@bpiotrowski.pl>
# Contributor: Brad Fanella <bradfanella@archlinux.us>
# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
@@ -7,34 +7,40 @@
pkgname=mupdf
pkgver=1.2
-pkgrel=2
+pkgrel=3
pkgdesc='Lightweight PDF and XPS viewer'
arch=('i686' 'x86_64')
url='http://mupdf.com'
license=('GPL3')
depends=('freetype2' 'libjpeg' 'jbig2dec' 'openjpeg' 'libxext' 'desktop-file-utils' 'xdg-utils')
install=mupdf.install
-source=(https://mupdf.googlecode.com/files/$pkgname-$pkgver-source.zip)
-sha256sums=('9bc9e31ec27c091dad37f70940bd799e46ab6da4299bc58e803bff3dbb07dc3b')
+source=(https://mupdf.googlecode.com/files/$pkgname-$pkgver-source.zip
+ mupdf-1.2-fix-dirty-flag-handling.patch)
+sha256sums=('9bc9e31ec27c091dad37f70940bd799e46ab6da4299bc58e803bff3dbb07dc3b'
+ 'd5c9ab3c5e9975909562230569a149a569f44fcd2b24c0b57e889b541a017f10')
+
+prepare() {
+ cd $pkgname-$pkgver-source
+ patch -Np1 -i "$srcdir"/mupdf-1.2-fix-dirty-flag-handling.patch
+}
build() {
- CFLAGS+=' -fPIC'
- CXXFLAGS+=' -fPIC'
+ CFLAGS+=' -fPIC'
+ CXXFLAGS+=' -fPIC'
- cd "$srcdir"/$pkgname-$pkgver-source
- rm -rf thirdparty
- make build=release prefix=/usr
+ cd $pkgname-$pkgver-source
+ rm -rf thirdparty
+ make build=release prefix=/usr
}
package() {
- cd "$srcdir"/$pkgname-$pkgver-source
- make build=release prefix="$pkgdir"/usr install
-
- sed -i 's/mupdf.xpm/mupdf/' debian/mupdf.desktop
- sed -i 's/application\/x-pdf/application\/x-pdf/' debian/mupdf.desktop
+ cd $pkgname-$pkgver-source
+ make build=release prefix="$pkgdir"/usr install
- install -Dm644 debian/mupdf.desktop "$pkgdir"/usr/share/applications/mupdf.desktop
- install -Dm644 debian/mupdf.xpm "$pkgdir"/usr/share/pixmaps/mupdf.xpm
+ sed -i 's/mupdf.xpm/mupdf/' debian/mupdf.desktop
+ sed -i 's/application\/x-pdf/application\/x-pdf/' debian/mupdf.desktop
+ install -Dm644 debian/mupdf.desktop "$pkgdir"/usr/share/applications/mupdf.desktop
+ install -Dm644 debian/mupdf.xpm "$pkgdir"/usr/share/pixmaps/mupdf.xpm
- chmod 644 "$pkgdir"/usr/lib/libfitz.a
+ chmod 644 "$pkgdir"/usr/lib/libfitz.a
}
diff --git a/community/mupdf/mupdf-1.2-fix-dirty-flag-handling.patch b/community/mupdf/mupdf-1.2-fix-dirty-flag-handling.patch
new file mode 100644
index 000000000..ec22ac328
--- /dev/null
+++ b/community/mupdf/mupdf-1.2-fix-dirty-flag-handling.patch
@@ -0,0 +1,88 @@
+From a20d6a58ebc6c60ff44f0f385cf399ee6fca55bf Mon Sep 17 00:00:00 2001
+From: Robin Watts <Robin.Watts@artifex.com>
+Date: Fri, 26 Apr 2013 12:21:17 +0100
+Subject: [PATCH] Fix dirty flag handling bug in X11 event loop.
+
+When I added transition handling to mupdf, I broke the X11
+behaviour of coalescing all events and only blitting when
+idle.
+
+This commit restores that behaviour, except when transitions
+are actually in progress (when it still blits instantly).
+---
+ apps/pdfapp.c | 6 +++++-
+ apps/x11_main.c | 8 ++++++--
+ 2 files changed, 11 insertions(+), 3 deletions(-)
+
+diff --git a/apps/pdfapp.c b/apps/pdfapp.c
+index c3b7d54..ff23c4b 100644
+--- a/apps/pdfapp.c
++++ b/apps/pdfapp.c
+@@ -1677,7 +1677,6 @@ void pdfapp_postblit(pdfapp_t *app)
+ if (llama >= 256)
+ {
+ /* Completed. */
+- app->in_transit = 0;
+ fz_drop_pixmap(app->ctx, app->image);
+ app->image = app->new_image;
+ app->new_image = NULL;
+@@ -1689,4 +1688,9 @@ void pdfapp_postblit(pdfapp_t *app)
+ else
+ fz_generate_transition(app->image, app->old_image, app->new_image, llama, &app->transition);
+ winrepaint(app);
++ if (llama >= 256)
++ {
++ /* Completed. */
++ app->in_transit = 0;
++ }
+ }
+diff --git a/apps/x11_main.c b/apps/x11_main.c
+index 364013c..987e359 100644
+--- a/apps/x11_main.c
++++ b/apps/x11_main.c
+@@ -79,6 +79,7 @@ static int mapped = 0;
+ static Cursor xcarrow, xchand, xcwait, xccaret;
+ static int justcopied = 0;
+ static int dirty = 0;
++static int transition_dirty = 0;
+ static int dirtysearch = 0;
+ static char *password = "";
+ static XColor xbgcolor;
+@@ -504,6 +505,8 @@ static void winblit(pdfapp_t *app)
+ void winrepaint(pdfapp_t *app)
+ {
+ dirty = 1;
++ if (app->in_transit)
++ transition_dirty = 1;
+ }
+
+ void winrepaintsearch(pdfapp_t *app)
+@@ -779,7 +782,7 @@ int main(int argc, char **argv)
+
+ while (!closing)
+ {
+- while (!closing && XPending(xdpy) && !dirty)
++ while (!closing && XPending(xdpy) && !transition_dirty)
+ {
+ XNextEvent(xdpy, &xevt);
+
+@@ -886,6 +889,7 @@ int main(int argc, char **argv)
+ else if (dirtysearch)
+ winblitsearch(&gapp);
+ dirty = 0;
++ transition_dirty = 0;
+ dirtysearch = 0;
+ pdfapp_postblit(&gapp);
+ }
+@@ -899,7 +903,7 @@ int main(int argc, char **argv)
+ timeradd(&now, &tmo, &tmo_at);
+ }
+
+- if (XPending(xdpy) || dirty)
++ if (XPending(xdpy) || transition_dirty)
+ continue;
+
+ timeout = NULL;
+--
+1.8.3
+