QQuickTextInput/Edit: ensure original context menu event is accepted
We make a copy of the context menu event in order to map its position
to cursorRectangle, but we forgot to set the accepted state back onto
the original event. If we don't do this, showEditMenu (in
src/plugins/platforms/ios/qiostextinputoverlay.mm) shows the built-in
native text editing context menu (QIOSTextInputOverlay::s_editMenu)
because it sees that the event wasn't accepted, resulting in both that
and Controls' menu being shown.
Amends 31ca3936d3
.
Fixes: QTBUG-138209
Change-Id: Iac001d9632af2f891337821720a372ec4833f173
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
This commit is contained in:
parent
1aefea26e5
commit
2c2e585771
|
@ -3328,7 +3328,9 @@ bool QQuickTextEdit::contextMenuEvent(QContextMenuEvent *event)
|
|||
Q_Q(QQuickTextEdit);
|
||||
QContextMenuEvent mapped(event->reason(), q->cursorRectangle().center().toPoint(),
|
||||
event->globalPos(), event->modifiers());
|
||||
return QQuickItemPrivate::handleContextMenuEvent(&mapped);
|
||||
const bool eventProcessed = QQuickItemPrivate::handleContextMenuEvent(&mapped);
|
||||
event->setAccepted(mapped.isAccepted());
|
||||
return eventProcessed;
|
||||
}
|
||||
|
||||
void QQuickTextEditPrivate::handleFocusEvent(QFocusEvent *event)
|
||||
|
|
|
@ -1727,7 +1727,9 @@ bool QQuickTextInput::contextMenuEvent(QContextMenuEvent *event)
|
|||
Q_Q(QQuickTextInput);
|
||||
QContextMenuEvent mapped(event->reason(), q->cursorRectangle().center().toPoint(),
|
||||
event->globalPos(), event->modifiers());
|
||||
return QQuickItemPrivate::handleContextMenuEvent(&mapped);
|
||||
const bool eventProcessed = QQuickItemPrivate::handleContextMenuEvent(&mapped);
|
||||
event->setAccepted(mapped.isAccepted());
|
||||
return eventProcessed;
|
||||
}
|
||||
|
||||
bool QQuickTextInputPrivate::sendMouseEventToInputContext(QMouseEvent *event)
|
||||
|
|
Loading…
Reference in New Issue