diff options
Diffstat (limited to 'src/controls/qquicktextfield.cpp')
-rw-r--r-- | src/controls/qquicktextfield.cpp | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/src/controls/qquicktextfield.cpp b/src/controls/qquicktextfield.cpp index cf8f24a2..7cf5f3c1 100644 --- a/src/controls/qquicktextfield.cpp +++ b/src/controls/qquicktextfield.cpp @@ -292,23 +292,39 @@ void QQuickTextField::mousePressEvent(QMouseEvent *event) { Q_D(QQuickTextField); d->pressAndHoldHelper.mousePressEvent(event); - QQuickTextInput::mousePressEvent(event); + if (d->pressAndHoldHelper.isActive()) { + if (d->pressAndHoldHelper.delayedMousePressEvent) { + QQuickTextInput::mousePressEvent(d->pressAndHoldHelper.delayedMousePressEvent); + d->pressAndHoldHelper.clearDelayedMouseEvent(); + } + QQuickTextInput::mousePressEvent(event); + } } void QQuickTextField::mouseMoveEvent(QMouseEvent *event) { Q_D(QQuickTextField); d->pressAndHoldHelper.mouseMoveEvent(event); - if (!d->pressAndHoldHelper.timer.isActive()) + if (d->pressAndHoldHelper.isActive()) { + if (d->pressAndHoldHelper.delayedMousePressEvent) { + QQuickTextInput::mousePressEvent(d->pressAndHoldHelper.delayedMousePressEvent); + d->pressAndHoldHelper.clearDelayedMouseEvent(); + } QQuickTextInput::mouseMoveEvent(event); + } } void QQuickTextField::mouseReleaseEvent(QMouseEvent *event) { Q_D(QQuickTextField); d->pressAndHoldHelper.mouseReleaseEvent(event); - if (!d->pressAndHoldHelper.longPress) + if (d->pressAndHoldHelper.isActive()) { + if (d->pressAndHoldHelper.delayedMousePressEvent) { + QQuickTextInput::mousePressEvent(d->pressAndHoldHelper.delayedMousePressEvent); + d->pressAndHoldHelper.clearDelayedMouseEvent(); + } QQuickTextInput::mouseReleaseEvent(event); + } } void QQuickTextField::timerEvent(QTimerEvent *event) |