summaryrefslogtreecommitdiffstats
path: root/src/widgets/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets/widgets')
-rw-r--r--src/widgets/widgets/qmenu.cpp13
-rw-r--r--src/widgets/widgets/qwidgetlinecontrol.cpp1
2 files changed, 10 insertions, 4 deletions
diff --git a/src/widgets/widgets/qmenu.cpp b/src/widgets/widgets/qmenu.cpp
index 274570b22a..e1c2b05909 100644
--- a/src/widgets/widgets/qmenu.cpp
+++ b/src/widgets/widgets/qmenu.cpp
@@ -2745,10 +2745,15 @@ QMenu::event(QEvent *e)
return true;
}
} break;
- case QEvent::ContextMenu:
- if (d->delayState.timer.isActive()) {
- d->delayState.stop();
- internalDelayedPopup();
+ case QEvent::MouseButtonPress:
+ case QEvent::ContextMenu: {
+ bool canPopup = true;
+ if (e->type() == QEvent::MouseButtonPress)
+ canPopup = (static_cast<QMouseEvent*>(e)->button() == Qt::LeftButton);
+ if (canPopup && d->delayState.timer.isActive()) {
+ d->delayState.stop();
+ internalDelayedPopup();
+ }
}
break;
case QEvent::Resize: {
diff --git a/src/widgets/widgets/qwidgetlinecontrol.cpp b/src/widgets/widgets/qwidgetlinecontrol.cpp
index e01c8f536e..8b6b76c55e 100644
--- a/src/widgets/widgets/qwidgetlinecontrol.cpp
+++ b/src/widgets/widgets/qwidgetlinecontrol.cpp
@@ -1563,6 +1563,7 @@ void QWidgetLineControl::processShortcutOverrideEvent(QKeyEvent *ke)
if (ke == QKeySequence::Copy
|| ke == QKeySequence::MoveToNextWord
|| ke == QKeySequence::MoveToPreviousWord
+ || ke == QKeySequence::MoveToStartOfLine
|| ke == QKeySequence::MoveToEndOfLine
|| ke == QKeySequence::MoveToStartOfDocument
|| ke == QKeySequence::MoveToEndOfDocument