workspacesView: Disable workspace switching while in search
WorkspacesDisplay connects to key-press-event on the stage to switch workspaces when page up or down is pressed and nothing else intercepts these keys. This means that it is still possible to switch workspaces while they are hidden behind the search. So only allow these keybinding while the WorkspacesDisplay is reactive which gets updated by ControlsManager depending on whether there is an active search or not. Also set it as initially reactive, because otherwise the keybindings would only work after performing an initial search. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2204>
This commit is contained in:
parent
05b0b4c432
commit
23047b6d80
@ -833,6 +833,7 @@ class WorkspacesDisplay extends St.Widget {
|
|||||||
_init(controls, scrollAdjustment, overviewAdjustment) {
|
_init(controls, scrollAdjustment, overviewAdjustment) {
|
||||||
super._init({
|
super._init({
|
||||||
layout_manager: new Clutter.BinLayout(),
|
layout_manager: new Clutter.BinLayout(),
|
||||||
|
reactive: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
this._controls = controls;
|
this._controls = controls;
|
||||||
@ -1150,6 +1151,9 @@ class WorkspacesDisplay extends St.Widget {
|
|||||||
if (this._overviewAdjustment.value !== ControlsState.WINDOW_PICKER)
|
if (this._overviewAdjustment.value !== ControlsState.WINDOW_PICKER)
|
||||||
return Clutter.EVENT_PROPAGATE;
|
return Clutter.EVENT_PROPAGATE;
|
||||||
|
|
||||||
|
if (!this.reactive)
|
||||||
|
return Clutter.EVENT_PROPAGATE;
|
||||||
|
|
||||||
const { workspaceManager } = global;
|
const { workspaceManager } = global;
|
||||||
const vertical = workspaceManager.layout_rows === -1;
|
const vertical = workspaceManager.layout_rows === -1;
|
||||||
const rtl = this.get_text_direction() === Clutter.TextDirection.RTL;
|
const rtl = this.get_text_direction() === Clutter.TextDirection.RTL;
|
||||||
|
Loading…
Reference in New Issue
Block a user