From 3f6e6048fea3b61c4d0b2c1e7385bc76882007a4 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 10 Jun 2013 00:13:24 -0700 Subject: Mon Jun 10 00:13:23 PDT 2013 --- community/mupdf/PKGBUILD | 40 +++++----- .../mupdf/mupdf-1.2-fix-dirty-flag-handling.patch | 88 ++++++++++++++++++++++ 2 files changed, 111 insertions(+), 17 deletions(-) create mode 100644 community/mupdf/mupdf-1.2-fix-dirty-flag-handling.patch (limited to 'community/mupdf') 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 # Contributor: Brad Fanella # Contributor: Stefan Husmann @@ -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 +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 + -- cgit v1.2.3-54-g00ecf