Bug 495536 - Overview effect keyboard window navigation moves selection between invisible windows while filtering
Summary: Overview effect keyboard window navigation moves selection between invisible ...
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: effects-overview (other bugs)
Version First Reported In: 6.1.5
Platform: Other Linux
: NOR minor
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords: accessibility, usability
: 495648 (view as bug list)
Depends on:
Blocks:
 
Reported: 2024-10-29 16:18 UTC by TYY331
Modified: 2024-12-03 22:12 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 6.3.0
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description TYY331 2024-10-29 16:18:34 UTC
SUMMARY
When using the keyboard to navigate and select a set of windows already filtered (for example typing konsole to filter all Konsole windows) the selection still moves through all the windows and not just the filtered ones
STEPS TO REPRODUCE
1. open multiple instances of an application
2. open overview 
3. filter applications so that multiple entries are available after filtering

OBSERVED RESULT
window list on overview: [app1_w1, app2_w1, app1_w2]
window list on filter (app1): [app1_w1, app1_w2]
keyboard navigation on right arrow key: [>app1_w1, app1_w2] => [>app1_w1, app1_w2] => [app1_w1, >app1_w2]
expected keyboard navigation on right arrow key: [>app1_w1, app1_w2] => [app1_w1, >app1_w2]

on the current behavior to get from app1_w1 into app1_w2 I have to make 2 right arrow key taps since keybaord selection is using the unfiltered grid to move
on the expected behavior I should just make 1 right arrow key tap since it's right next to it


SOFTWARE/OS VERSIONS
KDE Plasma Version: 6.1.5, also tested with 6.2
KDE Frameworks Version: 6.6.0
Qt Version: 6.7.2
Comment 1 Nate Graham 2024-11-01 15:43:17 UTC
*** Bug 495648 has been marked as a duplicate of this bug. ***
Comment 2 Bug Janitor Service 2024-11-25 12:39:04 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/6827
Comment 3 Niccolò Venerandi 2024-12-01 17:22:59 UTC
Git commit 975276ef5b8aced9883460a1d296958437760c0a by Niccolò Venerandi.
Committed on 01/12/2024 at 17:22.
Pushed by niccolove into branch 'master'.

Simplify Keys forwarding in Overview

Previously, the search bar and the window heap would forward the keypresses
to each other. The new version has just one forwarding statement, in the
root item, that specifies the exact forwarding order (heap, searchbar,
search results).

According to Keys QML documentation, the order of handling of events is 
the following:

* Item- specific key handling, e.g. TextInput key handling
* Items specified in forwardTo
* specific key handlers, e.g. onReturnPressed
* onPressed, onReleased handlers
* parent item

When we type and then press arrow keys, the focus goes to the heap. When we 
again press an arrow key, the `forwardTo` is handled before the `onPressed` 
handler of the heap, and the heap has a `forwardTo` to the search box, which 
accepts the event and moves the cursor within the input box.

By only having one forward to which clearly defines the order of handling we 
avoid that.

M  +1    -4    src/plugins/overview/qml/main.qml

https://invent.kde.org/plasma/kwin/-/commit/975276ef5b8aced9883460a1d296958437760c0a