overviewControls: Handle keyboard navigation
The old view selector used to handle initiating keynav into pages.
That code became inactive when non-search related functionality
was moved elsewhere, and was finally removed in commit cf41f4a527
.
We still want the keynav behavior it provided, so add similar code
to overview's control manager.
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4056
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2124>
This commit is contained in:
parent
7d43038312
commit
1cee7e6760
@ -435,6 +435,41 @@ class ControlsManager extends St.Widget {
|
||||
Main.overview.toggle();
|
||||
});
|
||||
|
||||
// connect_after to give search controller first dibs on the event
|
||||
global.stage.connect_after('key-press-event', (actor, event) => {
|
||||
if (this._searchController.searchActive)
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
|
||||
if (global.stage.key_focus &&
|
||||
!this.contains(global.stage.key_focus))
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
|
||||
const { finalState } =
|
||||
this._stateAdjustment.getStateTransitionParams();
|
||||
let keynavDisplay;
|
||||
|
||||
if (finalState === ControlsState.WINDOW_PICKER)
|
||||
keynavDisplay = this._workspacesDisplay;
|
||||
else if (finalState === ControlsState.APP_GRID)
|
||||
keynavDisplay = this._appDisplay;
|
||||
|
||||
if (!keynavDisplay)
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
|
||||
const symbol = event.get_key_symbol();
|
||||
if (symbol === Clutter.KEY_Tab || symbol === Clutter.KEY_Down) {
|
||||
keynavDisplay.navigate_focus(
|
||||
null, St.DirectionType.TAB_FORWARD, false);
|
||||
return Clutter.EVENT_STOP;
|
||||
} else if (symbol === Clutter.KEY_ISO_Left_Tab) {
|
||||
keynavDisplay.navigate_focus(
|
||||
null, St.DirectionType.TAB_BACKWARD, false);
|
||||
return Clutter.EVENT_STOP;
|
||||
}
|
||||
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
});
|
||||
|
||||
Main.wm.addKeybinding(
|
||||
'toggle-application-view',
|
||||
new Gio.Settings({ schema_id: WindowManager.SHELL_KEYBINDINGS_SCHEMA }),
|
||||
|
Loading…
Reference in New Issue
Block a user