QWSI: Remove dead code for macOS-specific shortcut-override handling
The macOS platform plugin exclusively uses handleExtendedKeyEvent() these days, never the simpler handleKeyEvent(), and always passes false for the tryShortcutOverride argument, so the special-cased code was never executed. No other platform passes the optional tryShortcutOverride argument, so it can be removed completely. If we ever need to bring back this kind of logic it should live in the macOS platform plugin, not in the QWSI layer. We have to keep the existing logic for qt_handleKeyEvent() though, as that's exercised through QTest::simulateEvent(). The next step would be to remove the QWindowSystemInterface::handleShortcutEvent() call in QGuiApplicationPrivate::processKeyEvent() and teach existing platform plugins, as well as the QTest machinery, to handle shortcuts explicitly before sending raw key events. Change-Id: I6eb3fd18c64d1619e33e79f076e25efd299a9ba7 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
This commit is contained in:
parent
f14b8c8294
commit
f2a2800b37
@ -485,11 +485,6 @@ QT_DEFINE_QPA_EVENT_HANDLER(bool, handleKeyEvent, QWindow *window, QEvent::Type
|
||||
|
||||
QT_DEFINE_QPA_EVENT_HANDLER(bool, handleKeyEvent, QWindow *window, ulong timestamp, QEvent::Type t, int k, Qt::KeyboardModifiers mods, const QString & text, bool autorep, ushort count)
|
||||
{
|
||||
#if defined(Q_OS_MACOS)
|
||||
if (t == QEvent::KeyPress && QWindowSystemInterface::handleShortcutEvent(window, timestamp, k, mods, 0, 0, 0, text, autorep, count))
|
||||
return true;
|
||||
#endif
|
||||
|
||||
return handleWindowSystemEvent<QWindowSystemInterfacePrivate::KeyEvent, Delivery>(window,
|
||||
timestamp, t, k, mods, text, autorep, count);
|
||||
}
|
||||
@ -498,11 +493,11 @@ bool QWindowSystemInterface::handleExtendedKeyEvent(QWindow *window, QEvent::Typ
|
||||
quint32 nativeScanCode, quint32 nativeVirtualKey,
|
||||
quint32 nativeModifiers,
|
||||
const QString& text, bool autorep,
|
||||
ushort count, bool tryShortcutOverride)
|
||||
ushort count)
|
||||
{
|
||||
unsigned long time = QWindowSystemInterfacePrivate::eventTime.elapsed();
|
||||
return handleExtendedKeyEvent(window, time, type, key, modifiers, nativeScanCode, nativeVirtualKey, nativeModifiers,
|
||||
text, autorep, count, tryShortcutOverride);
|
||||
text, autorep, count);
|
||||
}
|
||||
|
||||
bool QWindowSystemInterface::handleExtendedKeyEvent(QWindow *window, ulong timestamp, QEvent::Type type, int key,
|
||||
@ -510,17 +505,8 @@ bool QWindowSystemInterface::handleExtendedKeyEvent(QWindow *window, ulong times
|
||||
quint32 nativeScanCode, quint32 nativeVirtualKey,
|
||||
quint32 nativeModifiers,
|
||||
const QString& text, bool autorep,
|
||||
ushort count, bool tryShortcutOverride)
|
||||
ushort count)
|
||||
{
|
||||
#if defined(Q_OS_MACOS)
|
||||
if (tryShortcutOverride && type == QEvent::KeyPress && QWindowSystemInterface::handleShortcutEvent(window,
|
||||
timestamp, key, modifiers, nativeScanCode, nativeVirtualKey, nativeModifiers, text, autorep, count)) {
|
||||
return true;
|
||||
}
|
||||
#else
|
||||
Q_UNUSED(tryShortcutOverride);
|
||||
#endif
|
||||
|
||||
return handleWindowSystemEvent<QWindowSystemInterfacePrivate::KeyEvent>(window,
|
||||
timestamp, type, key, modifiers, nativeScanCode, nativeVirtualKey, nativeModifiers, text, autorep, count);
|
||||
}
|
||||
@ -1147,8 +1133,18 @@ Q_GUI_EXPORT void qt_handleMouseEvent(QWindow *window, const QPointF &local, con
|
||||
timestamp, nativeLocal, nativeGlobal, state, button, type, mods);
|
||||
}
|
||||
|
||||
/*
|
||||
Used by QTest::simulateEvent() to synthesize key events during testing
|
||||
*/
|
||||
Q_GUI_EXPORT void qt_handleKeyEvent(QWindow *window, QEvent::Type t, int k, Qt::KeyboardModifiers mods, const QString & text = QString(), bool autorep = false, ushort count = 1)
|
||||
{
|
||||
#if defined(Q_OS_MACOS)
|
||||
// FIXME: Move into QTest::simulateEvent() and align with QGuiApplicationPrivate::processKeyEvent()
|
||||
auto timestamp = QWindowSystemInterfacePrivate::eventTime.elapsed();
|
||||
if (t == QEvent::KeyPress && QWindowSystemInterface::handleShortcutEvent(window, timestamp, k, mods, 0, 0, 0, text, autorep, count))
|
||||
return;
|
||||
#endif
|
||||
|
||||
QWindowSystemInterface::handleKeyEvent<QWindowSystemInterface::SynchronousDelivery>(window, t, k, mods, text, autorep, count);
|
||||
}
|
||||
|
||||
|
@ -101,18 +101,18 @@ public:
|
||||
quint32 nativeScanCode, quint32 nativeVirtualKey,
|
||||
quint32 nativeModifiers,
|
||||
const QString& text = QString(), bool autorep = false,
|
||||
ushort count = 1, bool tryShortcutOverride = true);
|
||||
ushort count = 1);
|
||||
static bool handleExtendedKeyEvent(QWindow *window, ulong timestamp, QEvent::Type type, int key, Qt::KeyboardModifiers modifiers,
|
||||
quint32 nativeScanCode, quint32 nativeVirtualKey,
|
||||
quint32 nativeModifiers,
|
||||
const QString& text = QString(), bool autorep = false,
|
||||
ushort count = 1, bool tryShortcutOverride = true);
|
||||
ushort count = 1);
|
||||
static bool handleExtendedKeyEvent(QWindow *window, ulong timestamp, const QInputDevice *device,
|
||||
QEvent::Type type, int key, Qt::KeyboardModifiers modifiers,
|
||||
quint32 nativeScanCode, quint32 nativeVirtualKey,
|
||||
quint32 nativeModifiers,
|
||||
const QString& text = QString(), bool autorep = false,
|
||||
ushort count = 1, bool tryShortcutOverride = true);
|
||||
ushort count = 1);
|
||||
static bool handleWheelEvent(QWindow *window, const QPointF &local, const QPointF &global,
|
||||
QPoint pixelDelta, QPoint angleDelta,
|
||||
Qt::KeyboardModifiers mods = Qt::NoModifier,
|
||||
|
@ -250,10 +250,9 @@ bool KeyEvent::sendWindowSystemEvent(QWindow *window) const
|
||||
case QEvent::KeyPress:
|
||||
case QEvent::KeyRelease: {
|
||||
static const int count = 1;
|
||||
static const bool tryShortcutOverride = false;
|
||||
QWindowSystemInterface::handleExtendedKeyEvent(window, timestamp,
|
||||
type, key, modifiers, nativeScanCode, nativeVirtualKey, nativeModifiers,
|
||||
text, isRepeat, count, tryShortcutOverride);
|
||||
text, isRepeat, count);
|
||||
// FIXME: Make handleExtendedKeyEvent synchronous
|
||||
return QWindowSystemInterface::flushWindowSystemEvents();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user