Commit 6838b113 authored by Niklas Stephanblome's avatar Niklas Stephanblome Committed by Nate Graham
Browse files

Windowview: Fix broken keyboard navigation while filtering

After the 5.25 update, one could not see which window was highlighted until one
manually unfocused the SearchField and then pressed any key to refresh the WindowHeap.
Also, the searchbar would (most of the time) "absorb" the arrow keys so one had to
also unfocus it to really be able to select windows with they keyboard. 

With this change, there is always one window highlighted while filtering using the
search box. Also, one can select another window with the arrow keys without manually
unfocusing the searchbox. This heavily improves the keyboard functionality in this
effect that got lost with the 5.25 update of presentwindows to windowview and
resolves complaints about the keyboard navigation being buggy. 

BUG: 455633
BUG: 455764
BUG: 455099
BUG: 455586
BUG: 455753
FIXED-IN: 5.25.2
parent 18763d14
Pipeline #194564 failed with stage
in 36 minutes and 10 seconds
......@@ -75,10 +75,14 @@ Item {
Layout.alignment: Qt.AlignCenter
Layout.topMargin: PlasmaCore.Units.gridUnit
Layout.preferredWidth: Math.min(parent.width, 20 * PlasmaCore.Units.gridUnit)
focus: true
focus: false
// Binding loops will be avoided from the fact that setting the text to the same won't emit textChanged
// We can't use activeFocus because is not reliable on qml effects
onTextChanged: effect.searchText = text
onTextChanged: {
effect.searchText = text;
heap.resetSelected();
heap.selectNextItem(WindowHeap.Direction.Down);
}
Binding {
target: searchField
property: "text"
......
......@@ -307,6 +307,7 @@ void WindowViewEffect::activate(const QStringList &windowIds)
}
if (!internalIds.isEmpty()) {
m_windowIds = internalIds;
m_searchText = "";
setRunning(true);
}
}
......@@ -324,6 +325,7 @@ void WindowViewEffect::activate()
setPartialActivationFactor(0);
// This one should be the last.
m_searchText = "";
setRunning(true);
}
......@@ -339,6 +341,7 @@ void WindowViewEffect::partialActivate(qreal factor)
setGestureInProgress(true);
// This one should be the last.
m_searchText = "";
setRunning(true);
}
......
Supports Markdown
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