diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2013-08-13 12:06:40 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-08-13 12:22:54 +0200 |
commit | 9b7fc15edf47885f9b2894e354790c47ecdb3886 (patch) | |
tree | 7f8d77aa1417982cb3dca32e4c46c3f4620bf1a6 /src/plugins | |
parent | aec0a21f7eb5513d7c8c05e96903a66756cfc2da (diff) |
Implement support for global whatsthis on Windows
Task-Number: QTBUG-32835
Change-Id: Ifee10d815ce0037c96eda574ab9e1af67ff6bd78
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/platforms/windows/qtwindowsglobal.h | 7 | ||||
-rw-r--r-- | src/plugins/platforms/windows/qwindowscontext.cpp | 6 | ||||
-rw-r--r-- | src/plugins/platforms/xcb/qxcbwindow.cpp | 3 |
3 files changed, 14 insertions, 2 deletions
diff --git a/src/plugins/platforms/windows/qtwindowsglobal.h b/src/plugins/platforms/windows/qtwindowsglobal.h index ae48887a80..dcd3db2d47 100644 --- a/src/plugins/platforms/windows/qtwindowsglobal.h +++ b/src/plugins/platforms/windows/qtwindowsglobal.h @@ -83,6 +83,7 @@ enum WindowsEventType // Simplify event types CalculateSize = WindowEventFlag + 16, FocusInEvent = WindowEventFlag + 17, FocusOutEvent = WindowEventFlag + 18, + WhatsThisEvent = WindowEventFlag + 19, MouseEvent = MouseEventFlag + 1, MouseWheelEvent = MouseEventFlag + 2, CursorEvent = MouseEventFlag + 3, @@ -199,6 +200,12 @@ inline QtWindows::WindowsEventType windowsEventType(UINT message, WPARAM wParamI case WM_CONTEXTMENU: return QtWindows::ContextMenu; #endif + case WM_SYSCOMMAND: +#ifndef Q_OS_WINCE + if ((wParamIn & 0xfff0) == SC_CONTEXTHELP) + return QtWindows::WhatsThisEvent; +#endif + break; default: break; } diff --git a/src/plugins/platforms/windows/qwindowscontext.cpp b/src/plugins/platforms/windows/qwindowscontext.cpp index 170160a901..a9fd1d9836 100644 --- a/src/plugins/platforms/windows/qwindowscontext.cpp +++ b/src/plugins/platforms/windows/qwindowscontext.cpp @@ -887,6 +887,12 @@ bool QWindowsContext::windowsProc(HWND hwnd, UINT message, case QtWindows::ContextMenu: return handleContextMenuEvent(platformWindow->window(), msg); #endif + case QtWindows::WhatsThisEvent: { +#ifndef QT_NO_WHATSTHIS + QWindowSystemInterface::handleEnterWhatsThisEvent(); + return true; +#endif + } break; default: break; } diff --git a/src/plugins/platforms/xcb/qxcbwindow.cpp b/src/plugins/platforms/xcb/qxcbwindow.cpp index 7f1d5ddf66..c95c4d95ba 100644 --- a/src/plugins/platforms/xcb/qxcbwindow.cpp +++ b/src/plugins/platforms/xcb/qxcbwindow.cpp @@ -1512,8 +1512,7 @@ void QXcbWindow::handleClientMessageEvent(const xcb_client_message_event_t *even m_syncValue.hi = event->data.data32[3]; #ifndef QT_NO_WHATSTHIS } else if (event->data.data32[0] == atom(QXcbAtom::_NET_WM_CONTEXT_HELP)) { - QEvent *e = new QEvent(QEvent::EnterWhatsThisMode); - QGuiApplication::postEvent(QGuiApplication::instance(), e); + QWindowSystemInterface::handleEnterWhatsThisEvent(); #endif } else { qWarning() << "QXcbWindow: Unhandled WM_PROTOCOLS message:" << connection()->atomName(event->data.data32[0]); |