Support keyboard navigation over multiple monitors in multitasking view#2536
Open
leolost2605 wants to merge 9 commits intomainfrom
Open
Support keyboard navigation over multiple monitors in multitasking view#2536leolost2605 wants to merge 9 commits intomainfrom
leolost2605 wants to merge 9 commits intomainfrom
Conversation
919ea31 to
139ae2f
Compare
d0aa36a to
6507c10
Compare
6507c10 to
96b1148
Compare
96b1148 to
3888e2a
Compare
3888e2a to
fb04de5
Compare
This comment was marked as outdated.
This comment was marked as outdated.
Open
lenemter
reviewed
Jan 23, 2026
87170b0 to
a57c179
Compare
Member
Author
|
@lenemter I've added two commits on top that rename focusable to widget and then actortarget to widget target. Let me know what you think! |
Member
|
@leolost2605 I think it would be better to leave ActorTarget as is, rename Focusable to Widget, and make Widget subclass ActorTarget. This way Widget uses gesture infrastructure, not the other way around. What do you think? |
a57c179 to
280ecc4
Compare
Member
Author
lenemter
requested changes
Feb 7, 2026
Member
lenemter
left a comment
There was a problem hiding this comment.
For some reason when I hold down left/right arrows in with window focused and then release it, the left/right continues to be repeated
| } | ||
|
|
||
| private void set_focus_visible (bool visible) { | ||
| actor.set_qdata (focus_visible_quark, visible); |
Member
There was a problem hiding this comment.
We should check if actor is Widget and use property to store the data, since we don't use qdata anywhere else
280ecc4 to
2b063df
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Instead of manually handling keyboard focus where needed, do it like GTK does it with some adaptations.
We have the FocusController which is added to the "root" focusable of a focus tree (e.g. mtv or window overview).
Then we have the focusable class which is subclassed by the actors in the actor tree where focus is needed. The focusable handles deciding which implementor gets the focus based on the direction.
We now also hide the focus indicator after 5 seconds.
Fixes #2651
Fixes #2648
We can easily add navigation via Tab now too but I would leave that to a follow up