Commit c42d1607 authored by David Edmundson's avatar David Edmundson

[TabBox] Fix Arrow Key / Keyboard Events in QML Alt+Tab Skins

Summary:
KWin used to do a quirky trick to send key events to the topmost QQuickItem
rather than things going to the activeFocus item.

Sending it to the window previously would have failed as the window
didn't think it was active.

Since 66986d4a we can just let the
window process the events in a normal QtQuick manner.

BUG: 370185
Fixed-in: 5.15.0

It will require tabboxes to set focus correctly.
The ones I tested did.

Most analysis for this patch was done by Chris Holland.

Test Plan:
Held+alt tab with the "Text" tabbox switcher
pressed up and down

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: graesslin, kwin, Zren

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D16693
parent 7221864c
......@@ -528,13 +528,7 @@ void TabBoxHandler::grabbedKeyEvent(QKeyEvent* event) const
if (!d->m_mainItem || !d->window()) {
return;
}
const QList<QQuickItem*> items = d->window()->contentItem()->findChildren<QQuickItem*>(QString(), Qt::FindDirectChildrenOnly);
for (QQuickItem *item : items) {
d->window()->sendEvent(item, event);
if (event->isAccepted()) {
break;
}
}
QCoreApplication::sendEvent(d->window(), event);
}
bool TabBoxHandler::containsPos(const QPoint& pos) const
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment