author | Antonio Rojas
<arojas@archlinux.org> 2015-07-05 13:18:09 UTC |
committer | Antonio Rojas
<arojas@archlinux.org> 2015-07-05 13:18:09 UTC |
parent | e71e6e77461b27bff59a876877a92fed4ab0c39f |
PKGBUILD | +8 | -3 |
touchpad-init.patch | +73 | -0 |
diff --git a/PKGBUILD b/PKGBUILD index 8fe2dc7..9a4d998 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -4,7 +4,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/' @@ -18,11 +18,16 @@ conflicts=('kdebase-workspace' 'kcm-touchpad-frameworks') 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() { diff --git a/touchpad-init.patch b/touchpad-init.patch new file mode 100644 index 0000000..17f065a --- /dev/null +++ b/touchpad-init.patch @@ -0,0 +1,73 @@ +From: Rajeesh K Nambiar <rajeeshknambiar@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() +