PKGBUILDs/extra/krita/krita-qtabletevent.patch

64 lines
2.1 KiB
Diff
Raw Normal View History

2019-04-06 15:58:17 +00:00
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 ++++++++++++++++
diff --git a/libs/ui/input/kis_input_manager.cpp b/libs/ui/input/kis_input_manager.cpp
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