summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qguiapplication.cpp
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2019-05-02 09:39:31 +0200
committerLiang Qi <liang.qi@qt.io>2019-05-02 09:39:31 +0200
commit166889ddcbaac91c403a840f138f25bc2907b68c (patch)
treee30d875586d782d2253b18c63e9829f246356665 /src/gui/kernel/qguiapplication.cpp
parentef05c48898e90e4ff40d8c4493f4b80bc22c1703 (diff)
parentef3daddae1720956e746142ac7ee54a27b9299d7 (diff)
Merge remote-tracking branch 'origin/5.12' into 5.13
Conflicts: src/corelib/kernel/qobject.cpp Change-Id: I8ca1163a1fa8072dcd16ea4426c58219149599fd
Diffstat (limited to 'src/gui/kernel/qguiapplication.cpp')
-rw-r--r--src/gui/kernel/qguiapplication.cpp20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp
index 3a93b09941..e88fcdb55a 100644
--- a/src/gui/kernel/qguiapplication.cpp
+++ b/src/gui/kernel/qguiapplication.cpp
@@ -181,7 +181,9 @@ ulong QGuiApplicationPrivate::mousePressTime = 0;
Qt::MouseButton QGuiApplicationPrivate::mousePressButton = Qt::NoButton;
int QGuiApplicationPrivate::mousePressX = 0;
int QGuiApplicationPrivate::mousePressY = 0;
-int QGuiApplicationPrivate::mouse_double_click_distance = -1;
+
+static int mouseDoubleClickDistance = -1;
+static int touchDoubleTapDistance = -1;
QWindow *QGuiApplicationPrivate::currentMousePressWindow = 0;
@@ -259,6 +261,12 @@ static inline void clearFontUnlocked()
QGuiApplicationPrivate::app_font = 0;
}
+static void initThemeHints()
+{
+ mouseDoubleClickDistance = QGuiApplicationPrivate::platformTheme()->themeHint(QPlatformTheme::MouseDoubleClickDistance).toInt();
+ touchDoubleTapDistance = QGuiApplicationPrivate::platformTheme()->themeHint(QPlatformTheme::TouchDoubleTapDistance).toInt();
+}
+
static bool checkNeedPortalSupport()
{
#if QT_CONFIG(dbus)
@@ -1523,8 +1531,7 @@ void QGuiApplicationPrivate::init()
initPalette();
QFont::initialize();
-
- mouse_double_click_distance = platformTheme()->themeHint(QPlatformTheme::MouseDoubleClickDistance).toInt();
+ initThemeHints();
#ifndef QT_NO_CURSOR
QCursorData::initialize();
@@ -2034,8 +2041,10 @@ void QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::Mo
if (mouseMove) {
QGuiApplicationPrivate::lastCursorPosition = globalPoint;
- if (qAbs(globalPoint.x() - mousePressX) > mouse_double_click_distance||
- qAbs(globalPoint.y() - mousePressY) > mouse_double_click_distance)
+ const auto doubleClickDistance = e->source == Qt::MouseEventNotSynthesized ?
+ mouseDoubleClickDistance : touchDoubleTapDistance;
+ if (qAbs(globalPoint.x() - mousePressX) > doubleClickDistance ||
+ qAbs(globalPoint.y() - mousePressY) > doubleClickDistance)
mousePressButton = Qt::NoButton;
} else {
mouse_buttons = e->buttons;
@@ -3961,6 +3970,7 @@ void QGuiApplicationPrivate::notifyThemeChanged()
clearFontUnlocked();
initFontUnlocked();
}
+ initThemeHints();
}
void QGuiApplicationPrivate::sendApplicationPaletteChange(bool toAllWidgets, const char *className)