diff options
author | Liang Qi <liang.qi@qt.io> | 2019-05-02 09:39:31 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2019-05-02 09:39:31 +0200 |
commit | 166889ddcbaac91c403a840f138f25bc2907b68c (patch) | |
tree | e30d875586d782d2253b18c63e9829f246356665 /src/gui/kernel/qguiapplication.cpp | |
parent | ef05c48898e90e4ff40d8c4493f4b80bc22c1703 (diff) | |
parent | ef3daddae1720956e746142ac7ee54a27b9299d7 (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.cpp | 20 |
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) |