[arch-commits] Commit in plasma-desktop/trunk (PKGBUILD touchpad-init.patch)

Antonio Rojas arojas at archlinux.org
Sun Jul 5 13:18:09 UTC 2015


    Date: Sunday, July 5, 2015 @ 15:18:09
  Author: arojas
Revision: 241824

Fix touchpad backend initialization (KDEBUG#344958)

Added:
  plasma-desktop/trunk/touchpad-init.patch
Modified:
  plasma-desktop/trunk/PKGBUILD

---------------------+
 PKGBUILD            |   11 +++++--
 touchpad-init.patch |   73 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 81 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2015-07-05 06:46:30 UTC (rev 241823)
+++ PKGBUILD	2015-07-05 13:18:09 UTC (rev 241824)
@@ -5,7 +5,7 @@
 
 pkgname=plasma-desktop
 pkgver=5.3.2
-pkgrel=1
+pkgrel=2
 pkgdesc='KDE Plasma Desktop'
 arch=('i686' 'x86_64')
 url='https://www.kde.org/workspaces/plasmadesktop/'
@@ -19,11 +19,16 @@
 replaces=('kcm-touchpad-frameworks')
 install="${pkgname}.install"
 groups=('plasma')
-source=("http://download.kde.org/stable/plasma/${pkgver}/$pkgname-$pkgver.tar.xz")
-md5sums=('535e062e140b8eb25d557aba7eb1bc24')
+source=("http://download.kde.org/stable/plasma/${pkgver}/$pkgname-$pkgver.tar.xz" 'touchpad-init.patch')
+md5sums=('535e062e140b8eb25d557aba7eb1bc24'
+         '3a334fccf64dd518d94371dee051723a')
 
 prepare() {
   mkdir -p build
+
+# Fix touchpad backend initialization https://bugs.kde.org/show_bug.cgi?id=344958
+  cd $pkgname-$pkgver
+  patch -p1 -i "$srcdir"/touchpad-init.patch
 }
 
 build() {

Added: touchpad-init.patch
===================================================================
--- touchpad-init.patch	                        (rev 0)
+++ touchpad-init.patch	2015-07-05 13:18:09 UTC (rev 241824)
@@ -0,0 +1,73 @@
+From: Rajeesh K Nambiar <rajeeshknambiar at gmail.com>
+Date: Sat, 27 Jun 2015 11:58:17 +0000
+Subject: Fix touchpad backend initialization.
+X-Git-Url: http://quickgit.kde.org/?p=plasma-desktop.git&a=commitdiff&h=3f2e6bd31e0cd7355f95450cdc185e4d37ed2c16
+---
+Fix touchpad backend initialization.
+
+Libinput driver, even when unistalled was leaving 'Libinput Tapping
+Enabled' atom active (xlsatoms | grep -i tap). Mutter/Clutter/Gtk+ were
+causing this, as noted in https://bugzilla.redhat.com/show_bug.cgi?
+id=1199825. This caused the non-existent libinput backend initialization
+resulting in 'No touchpad found' error even when synaptics driver was
+installed.
+Fix this by checking backend instantiation errors.
+
+BUG: 344958,349214
+REVIEW: 124172
+FIXED-IN: 5.4.0
+---
+
+
+--- a/kcms/touchpad/src/backends/x11/xlibbackend.cpp
++++ b/kcms/touchpad/src/backends/x11/xlibbackend.cpp
+@@ -151,8 +151,10 @@
+     XlibBackend(parent)
+ {
+     m_capsAtom.intern(m_connection, SYNAPTICS_PROP_CAPABILITIES);
+-    if (!m_capsAtom.atom())
+-        return;
++    if (!m_capsAtom.atom()) {
++        m_errorString = i18nc("Synaptics touchpad driver","Synaptics backend not found");
++        return;
++    }
+ 
+     m_device = findTouchpad(m_capsAtom);
+     if (m_device == XIAllDevices) {
+@@ -275,8 +277,10 @@
+                        "libinput Tapping Enabled",
+                        true);
+ 
+-    if (!identifier.atom())
+-        return;
++    if (!identifier.atom()) {
++        m_errorString = i18nc("Libinput touchpad driver","Libinput backend not found");
++        return;
++    }
+ 
+     m_device = findTouchpad(identifier);
+     if (m_device == XIAllDevices) {
+@@ -318,15 +322,17 @@
+ 
+ XlibBackend* XlibBackend::initialize(QObject *parent)
+ {
++    XlibBackend* backend = nullptr;
+     QScopedPointer<Display, XDisplayCleanup> display(XOpenDisplay(0));
+     xcb_connection_t *connection = XGetXCBConnection(display.data());
+     XcbAtom synaptics_prop_capablities, libinput_prop_tapping;
+ 
+-    libinput_prop_tapping.intern(connection, "libinput Tapping Enabled");
+-    if (libinput_prop_tapping.atom())
+-        return new XlibLibinputBackend(parent);
+-    else
+-        return new XlibSynapticsBackend(parent);
++    backend = new XlibLibinputBackend(parent);
++    if (! backend->errorString().isNull()) {
++        delete backend;
++        backend = new XlibSynapticsBackend(parent);
++    }
++    return backend;
+ }
+ 
+ XlibBackend::~XlibBackend()
+



More information about the arch-commits mailing list