From: Friedemann Kleint Date: Fri, 2 Nov 2012 10:59:14 +0000 (+0100) Subject: Send QContexMenuEvent when Context Menu key is pressed. X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=87f16671c3848ffa2d505aaade1b1172176d59fa;p=profile%2Fivi%2Fqtbase.git 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 --- diff --git a/src/plugins/platforms/xcb/qxcbkeyboard.cpp b/src/plugins/platforms/xcb/qxcbkeyboard.cpp index a8542af..d35ce18 100644 --- a/src/plugins/platforms/xcb/qxcbkeyboard.cpp +++ b/src/plugins/platforms/xcb/qxcbkeyboard.cpp @@ -53,6 +53,7 @@ #include #include +#include #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