Date: Sunday, June 9, 2013 @ 15:31:54 Author: bpiotrowski Revision: 92585
upgpkg: mupdf 1.2-3 - add patch fixing slow mouse scrolling and resizing (FS#35706) Added: mupdf/trunk/mupdf-1.2-fix-dirty-flag-handling.patch Modified: mupdf/trunk/PKGBUILD -----------------------------------------+ PKGBUILD | 38 +++++++----- mupdf-1.2-fix-dirty-flag-handling.patch | 88 ++++++++++++++++++++++++++++++ 2 files changed, 110 insertions(+), 16 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2013-06-09 10:22:20 UTC (rev 92584) +++ PKGBUILD 2013-06-09 13:31:54 UTC (rev 92585) @@ -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 + cd $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 + 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 - 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 } Added: mupdf-1.2-fix-dirty-flag-handling.patch =================================================================== --- mupdf-1.2-fix-dirty-flag-handling.patch (rev 0) +++ mupdf-1.2-fix-dirty-flag-handling.patch 2013-06-09 13:31:54 UTC (rev 92585) @@ -0,0 +1,88 @@ +From a20d6a58ebc6c60ff44f0f385cf399ee6fca55bf Mon Sep 17 00:00:00 2001 +From: Robin Watts <robin.wa...@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 +