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
+

Reply via email to