Date: Saturday, September 9, 2017 @ 19:11:18
  Author: heftig
Revision: 256709

4.14-1

Added:
  i3-wm/trunk/0001-Use-OVER-operator-for-drawing-text.patch
Modified:
  i3-wm/trunk/PKGBUILD

-----------------------------------------------+
 0001-Use-OVER-operator-for-drawing-text.patch |   35 +++++++++++++
 PKGBUILD                                      |   63 ++++++++++++------------
 2 files changed, 67 insertions(+), 31 deletions(-)

Added: 0001-Use-OVER-operator-for-drawing-text.patch
===================================================================
--- 0001-Use-OVER-operator-for-drawing-text.patch                               
(rev 0)
+++ 0001-Use-OVER-operator-for-drawing-text.patch       2017-09-09 19:11:18 UTC 
(rev 256709)
@@ -0,0 +1,35 @@
+From eea280b1f1d9d66c903014fd6703f401eb119a87 Mon Sep 17 00:00:00 2001
+Message-Id: 
<eea280b1f1d9d66c903014fd6703f401eb119a87.1504913100.git.jan.steff...@gmail.com>
+From: "Jan Alexander Steffens (heftig)" <jan.steff...@gmail.com>
+Date: Sat, 9 Sep 2017 00:22:13 +0200
+Subject: [PATCH] Use OVER operator for drawing text
+
+For opaque text, SOURCE is not any different from OVER. However, when
+drawing color glyphs (which consist of RGBA pixels instead of strokes)
+SOURCE's handling of alpha is not what we want.
+
+I stumbled across this because cairo 1.15.8 seems to clear the surface
+before drawing color emoji if the operator is SOURCE, deleting every-
+thing drawn before. Arguably, the area outside the glyph bounds should
+not be touched, but even if this is a cairo bug the problem of alpha
+within the glyph remains.
+---
+ libi3/font.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libi3/font.c b/libi3/font.c
+index 81091ea74a31da11..aef8427b5396c3d8 100644
+--- a/libi3/font.c
++++ b/libi3/font.c
+@@ -105,7 +105,7 @@ static void draw_text_pango(const char *text, size_t 
text_len,
+         pango_layout_set_text(layout, text, text_len);
+ 
+     /* Do the drawing */
+-    cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);
++    cairo_set_operator(cr, CAIRO_OPERATOR_OVER);
+     cairo_set_source_rgb(cr, pango_font_red, pango_font_green, 
pango_font_blue);
+     pango_cairo_update_layout(cr, layout);
+     pango_layout_get_pixel_size(layout, NULL, &height);
+-- 
+2.14.1
+

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2017-09-09 18:00:28 UTC (rev 256708)
+++ PKGBUILD    2017-09-09 19:11:18 UTC (rev 256709)
@@ -2,18 +2,15 @@
 # Maintainer: Thorsten Töpper <atsutane...@freethoughts.de>
 
 pkgname=i3-wm
-_pkgsourcename=i3
-pkgver=4.13
+pkgver=4.14
 pkgrel=1
-pkgdesc='An improved dynamic tiling window manager'
-arch=('i686' 'x86_64')
-url='http://i3wm.org/'
-license=('BSD')
-replaces=('i3' 'i3bar')
-groups=('i3')
-depends=('xcb-util-cursor' 'xcb-util-keysyms' 'xcb-util-wm' 'xcb-util-xrm'
-         'libev' 'yajl' 'startup-notification' 'pango' 'libxkbcommon-x11')
-makedepends=('bison' 'flex')
+pkgdesc="An improved dynamic tiling window manager"
+url="https://i3wm.org/";
+arch=(i686 x86_64)
+license=(BSD)
+depends=(xcb-util-cursor xcb-util-keysyms xcb-util-wm xcb-util-xrm libev yajl 
startup-notification
+         pango libxkbcommon-x11)
+makedepends=(bison flex asciidoc xmlto)
 optdepends=('dmenu: As menu.'
             'i3lock: For locking your screen.'
             'i3status: To display systeminformation with a bar.'
@@ -20,32 +17,36 @@
             'perl: i3-save-tree and i3-dmenu-desktop'
             'perl-anyevent-i3: Features like saving the layout.'
             'perl-json-xs: Features like saving the layout.')
-options=('docs' '!strip')
-source=("http://i3wm.org/downloads/${_pkgsourcename}-${pkgver}.tar.bz2";
-        "http://i3wm.org/downloads/${_pkgsourcename}-${pkgver}.tar.bz2.asc";)
-md5sums=('08d17dcf1fde665a15f7d411486546ae'
-         'SKIP')
+groups=(i3)
+replaces=(i3 i3bar)
+source=("https://i3wm.org/downloads/i3-$pkgver.tar.bz2"{,.asc}
+        0001-Use-OVER-operator-for-drawing-text.patch)
+sha256sums=('ae3abde3af1b87e269d8aad2348be6f7298338cb8e06bad11cbf91cdbf92a5d6'
+            'SKIP'
+            'e49e147b1cd06f95188decbbe41f5c3a0aca18d0195750bc3ea16465b4aca563')
 validpgpkeys=('424E14D703E7C6D43D9D6F364E7160ED4AC8EE1D') # Michael Stapelberg
 
+prepare() {
+  mkdir build
+  cd i3-$pkgver
+
+  # https://github.com/i3/i3/pull/2908
+  patch -Np1 -i ../0001-Use-OVER-operator-for-drawing-text.patch
+
+  autoreconf -fvi
+}
+
 build() {
-  cd "$srcdir/$_pkgsourcename-$pkgver"
-  
-  ./configure --prefix=/usr --sysconfdir=/etc
-  cd ${CARCH}-pc-linux-gnu
-  # In order to avoid problems with bison use only a single process
-  MAKEFLAGS="-j1"
-  make CPPFLAGS+="-U_FORTIFY_SOURCE"
+  cd build
+  ../i3-$pkgver/configure --prefix=/usr --sysconfdir=/etc
+  make
 }
 
 package() {
-  cd "$srcdir/$_pkgsourcename-$pkgver/${CARCH}-pc-linux-gnu"
-  make DESTDIR="$pkgdir/" install
-  
-  mkdir -p "${pkgdir}/usr/share/man/man1/"
-  install -m644 ../man/*.1 "${pkgdir}/usr/share/man/man1/"
-
-  install -Dm644 ../LICENSE \
-    ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+  cd build
+  make DESTDIR="$pkgdir" install
+  install -Dt "$pkgdir/usr/share/man/man1" -m644 man/*.1
+  install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 ../i3-$pkgver/LICENSE
 }
 
 # vim:set ts=2 sw=2 et:

Reply via email to