Send QContexMenuEvent when Context Menu key is pressed.
Bring back code from keymapper_x11.cpp. Task-number: QTBUG-27648 Change-Id: I2a189a0537bcd2ae0eb093576c84814b2f09933b Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>bb10
parent
3c092b7e58
commit
87f16671c3
|
|
@ -53,6 +53,7 @@
|
|||
|
||||
#include <qpa/qplatforminputcontext.h>
|
||||
#include <qpa/qplatformintegration.h>
|
||||
#include <qpa/qplatformcursor.h>
|
||||
|
||||
#ifndef XK_ISO_Left_Tab
|
||||
#define XK_ISO_Left_Tab 0xFE20
|
||||
|
|
@ -1106,9 +1107,15 @@ void QXcbKeyboard::handleKeyEvent(QWindow *window, QEvent::Type type, xcb_keycod
|
|||
filtered = inputContext->filterEvent(&event);
|
||||
}
|
||||
|
||||
if (!filtered)
|
||||
if (!filtered) {
|
||||
if (type == QEvent::KeyPress && qtcode == Qt::Key_Menu) {
|
||||
const QPoint globalPos = window->screen()->handle()->cursor()->pos();
|
||||
const QPoint pos = window->mapFromGlobal(globalPos);
|
||||
QWindowSystemInterface::handleContextMenuEvent(window, false, pos, globalPos, modifiers);
|
||||
}
|
||||
QWindowSystemInterface::handleExtendedKeyEvent(window, time, type, qtcode, modifiers,
|
||||
code, sym, state, string.left(count), isAutoRepeat);
|
||||
}
|
||||
|
||||
if (isAutoRepeat && type == QEvent::KeyRelease) {
|
||||
// since we removed it from the event queue using checkEvent we need to send the key press here
|
||||
|
|
|
|||
Loading…
Reference in New Issue