Implement support for global whatsthis on Windows
Task-Number: QTBUG-32835 Change-Id: Ifee10d815ce0037c96eda574ab9e1af67ff6bd78 Reviewed-by: Andy Shaw <andy.shaw@digia.com>bb10
parent
aec0a21f7e
commit
9b7fc15edf
|
|
@ -1480,6 +1480,8 @@ void QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePriv
|
|||
static_cast<QWindowSystemInterfacePrivate::ContextMenuEvent *>(e));
|
||||
break;
|
||||
#endif
|
||||
case QWindowSystemInterfacePrivate::EnterWhatsThisMode:
|
||||
QGuiApplication::postEvent(QGuiApplication::instance(), new QEvent(QEvent::EnterWhatsThisMode));
|
||||
default:
|
||||
qWarning() << "Unknown user input event type:" << e->type;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -694,6 +694,15 @@ void QWindowSystemInterface::handleContextMenuEvent(QWindow *w, bool mouseTrigge
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifndef QT_NO_WHATSTHIS
|
||||
void QWindowSystemInterface::handleEnterWhatsThisEvent()
|
||||
{
|
||||
QWindowSystemInterfacePrivate::WindowSystemEvent *e =
|
||||
new QWindowSystemInterfacePrivate::WindowSystemEvent(QWindowSystemInterfacePrivate::EnterWhatsThisMode);
|
||||
QWindowSystemInterfacePrivate::handleWindowSystemEvent(e);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef QT_NO_DEBUG_STREAM
|
||||
Q_GUI_EXPORT QDebug operator<<(QDebug dbg, const QWindowSystemInterface::TouchPoint &p) {
|
||||
dbg.nospace() << "TouchPoint(" << p.id << " @" << p.normalPosition << " press " << p.pressure << " vel " << p.velocity << " state " << (int)p.state;
|
||||
|
|
|
|||
|
|
@ -184,6 +184,9 @@ public:
|
|||
const QPoint &pos, const QPoint &globalPos,
|
||||
Qt::KeyboardModifiers modifiers);
|
||||
#endif
|
||||
#ifndef QT_NO_WHATSTHIS
|
||||
static void handleEnterWhatsThisEvent();
|
||||
#endif
|
||||
|
||||
// For event dispatcher implementations
|
||||
static bool sendWindowSystemEvents(QEventLoop::ProcessEventsFlags flags);
|
||||
|
|
|
|||
|
|
@ -90,6 +90,7 @@ public:
|
|||
TabletLeaveProximity = UserInputEvent | 0x16,
|
||||
PlatformPanel = UserInputEvent | 0x17,
|
||||
ContextMenu = UserInputEvent | 0x18,
|
||||
EnterWhatsThisMode = UserInputEvent | 0x19,
|
||||
ApplicationStateChanged = 0x19,
|
||||
FlushEvents = 0x20,
|
||||
WindowScreenChanged = 0x21
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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]);
|
||||
|
|
|
|||
Loading…
Reference in New Issue