summaryrefslogtreecommitdiffstats
path: root/kde
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2019-05-09 16:06:11 +0200
committer Eric Hameleers <alien@slackware.com>2019-05-09 16:06:11 +0200
commita16c3d7cd80d1be0a8efaaea034e85932db14ef5 (patch)
tree414c4f8e9f8b9c8b1e5d4eeea4c584474d013fc7 /kde
parent8ccc6d1c8163fe883852412f191f05a74ddc0b1f (diff)
downloadktown-a16c3d7cd80d1be0a8efaaea034e85932db14ef5.tar.gz
ktown-a16c3d7cd80d1be0a8efaaea034e85932db14ef5.tar.xz
Krita: hack around tablet issues with un-patched Qt 5.12
Diffstat (limited to 'kde')
-rw-r--r--kde/patch/krita.patch4
-rw-r--r--kde/patch/krita/krita_qtabletevents.patch67
2 files changed, 71 insertions, 0 deletions
diff --git a/kde/patch/krita.patch b/kde/patch/krita.patch
index e1604ab..d35dd12 100644
--- a/kde/patch/krita.patch
+++ b/kde/patch/krita.patch
@@ -1,3 +1,7 @@
# Fix compilation of Krita against Qt 5.9:
#cat $CWD/patch/krita/krita_qt59.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
+# Hack around tablet issues with un-patched Qt 5.12:
+cat $CWD/patch/krita/krita_qtabletevents.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
+
+
diff --git a/kde/patch/krita/krita_qtabletevents.patch b/kde/patch/krita/krita_qtabletevents.patch
new file mode 100644
index 0000000..a1d3869
--- /dev/null
+++ b/kde/patch/krita/krita_qtabletevents.patch
@@ -0,0 +1,67 @@
+# NOTE: original patch: https://cgit.kde.org/krita.git/commit/?id=a3193fe2
+# But first part (patch to ext_qt)) has been removed due to failure to apply.
+# -- Eric Hameleers
+
+From a3193fe273c3f2c3b5493f77724a4bc099ae5e36 Mon Sep 17 00:00:00 2001
+From: Dmitry Kazakov <dimula73@gmail.com>
+Date: Mon, 11 Mar 2019 16:49:31 +0300
+Subject: Add a hacky patch that ensures QTabletEvents to be ignored in
+ distribution builds
+
+If we ensure that all the tablet events are ignored, then Qt
+will always generate synthesized mouse events, avoiding the
+problem of lost Enter/Leave events.
+
+We also mark our own build of Qt about the presence of the fix
+(therefore, it doesn't need this hack).
+---
+ libs/ui/input/kis_input_manager.cpp | 20 ++++++++++++++++
+
+index 30a4677..d173543 100644
+--- a/libs/ui/input/kis_input_manager.cpp
++++ b/libs/ui/input/kis_input_manager.cpp
+@@ -496,6 +496,13 @@ bool KisInputManager::eventFilterImpl(QEvent * event)
+ //Reset signal compressor to prevent processing events before press late
+ d->resetCompressor();
+ d->eatOneMousePress();
++
++#if defined Q_OS_LINUX && !defined QT_HAS_ENTER_LEAVE_PATCH
++ // remove this hack when this patch is integrated:
++ // https://codereview.qt-project.org/#/c/255384/
++ event->setAccepted(false);
++#endif
++
+ break;
+ }
+ case QEvent::TabletMove: {
+@@ -517,6 +524,12 @@ bool KisInputManager::eventFilterImpl(QEvent * event)
+ */
+ d->blockMouseEvents();
+
++#if defined Q_OS_LINUX && !defined QT_HAS_ENTER_LEAVE_PATCH
++ // remove this hack when this patch is integrated:
++ // https://codereview.qt-project.org/#/c/255384/
++ event->setAccepted(false);
++#endif
++
+ break;
+ }
+ case QEvent::TabletRelease: {
+@@ -529,6 +542,13 @@ bool KisInputManager::eventFilterImpl(QEvent * event)
+ retval = d->matcher.buttonReleased(tabletEvent->button(), tabletEvent);
+ retval = true;
+ event->setAccepted(true);
++
++#if defined Q_OS_LINUX && !defined QT_HAS_ENTER_LEAVE_PATCH
++ // remove this hack when this patch is integrated:
++ // https://codereview.qt-project.org/#/c/255384/
++ event->setAccepted(false);
++#endif
++
+ break;
+ }
+
+--
+cgit v1.1
+
+