1
0
forked from pool/libqt5-qtbase
libqt5-qtbase/0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch
Dominique Leuenberger e25a4c083c Accepting request 712125 from KDE:Qt:5.13
- Add patch to restore compatibility with akonadi's PGSQL backend
  (see https://bugs.archlinux.org/task/62997):
  * 0001-Revert-Always-escape-the-table-names-when-creating-t.patch

- Disable libzstd support again, it breaks various existing codebases (QTBUG-76521)

- Update to 5.13.0:
  * New bugfix release
  * No changelog available
  * For more details about Qt 5.13 please see:
  * http://code.qt.io/cgit/qt/qtbase.git/plain/dist/changes-5.13.0/?h=5.13
- Remove patches, now upstream:
  * 0001-Add-quoting-to-deal-with-empty-CMAKE_CXX_STANDARD_LI.patch

- Add patches to improve compatibility with Krita:
  * 0001-Fix-notification-of-QDockWidget-when-it-gets-undocke.patch
  * 0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch
  * 0003-Add-an-ID-for-recognition-of-UGEE-tablets.patch

- Revert yet another commit to fix linker errors:
  * 0001-Revert-qmake-link-qt-libraries-by-full-path.patch

- Enable libzstd support

- Revert some commits in the hope of fixing some broken paths (QTBUG-76255):
  * 0001-Revert-Fix-QMAKE_PRL_INSTALL_REPLACE-for-macOS.patch
  * 0002-Revert-Replace-absolute-Qt-lib-dir-in-.prl-files.patch
  * 0003-Revert-Fix-prl-replacements-if-libdir-is-in-QMAKE_DE.patch

- Add patch to fix some cmake module config files (QTBUG-76244):

OBS-URL: https://build.opensuse.org/request/show/712125
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libqt5-qtbase?expand=0&rev=97
2019-06-28 14:32:03 +00:00

51 lines
2.0 KiB
Diff

From 34db59a076dd824401f952b305a4f575b0140f79 Mon Sep 17 00:00:00 2001
From: Dmitry Kazakov <dimula73@gmail.com>
Date: Mon, 11 Mar 2019 13:18:06 +0300
Subject: [PATCH 2/3] Synthesize Enter/LeaveEvent for accepted QTabletEvent
When the tablet event is accepted, then Qt doesn't synthesize a mouse
event, it means that QApplicationPrivate::sendMouseEvent() will not be
called, and, therefore, enter/leave events will not be dispatched.
The patch looks a bit hackish. Ideally, the synthesize should happen
in QGuiApplicationPrivate::processTabletEvent(), which takes the decision
about synthesizing mouse events. But there is not enough information
on this level: neither qt_last_mouse_receiver nor the receiver widget
are known at this stage.
On Windows and other platforms where there is a parallel stream of
mouse events synthesized by the platform, we shouldn't generate these
events manually.
Change-Id: Ifbad6284483ee282ad129db54606f5d0d9ddd633
---
src/widgets/kernel/qwidgetwindow.cpp | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/src/widgets/kernel/qwidgetwindow.cpp b/src/widgets/kernel/qwidgetwindow.cpp
index fbc71cd0ea..729a7f701a 100644
--- a/src/widgets/kernel/qwidgetwindow.cpp
+++ b/src/widgets/kernel/qwidgetwindow.cpp
@@ -1051,6 +1051,18 @@ void QWidgetWindow::handleTabletEvent(QTabletEvent *event)
event->setAccepted(ev.isAccepted());
}
+ /**
+ * Synthesize Enter/Leave events if it is requested by the system and user
+ */
+ if (widget != qt_last_mouse_receiver &&
+ event->isAccepted() &&
+ !QWindowSystemInterfacePrivate::TabletEvent::platformSynthesizesMouse &&
+ qApp->testAttribute(Qt::AA_SynthesizeMouseForUnhandledTabletEvents)) {
+
+ QApplicationPrivate::dispatchEnterLeave(widget, qt_last_mouse_receiver, event->globalPos());
+ qt_last_mouse_receiver = widget;
+ }
+
if (event->type() == QEvent::TabletRelease && event->buttons() == Qt::NoButton)
qt_tablet_target = 0;
}
--
2.21.0