workspacesView: Enable keynav between all monitors
Instead of using one focus group for each (per-monitor) workspacesView, use a single one that is shared between all of them. https://gitlab.gnome.org/GNOME/gnome-shell/issues/412
This commit is contained in:
parent
eeda54f24d
commit
38c05d91a8
@ -33,7 +33,6 @@ var WorkspacesViewBase = new Lang.Class({
|
|||||||
this.actor = new St.Widget({ style_class: 'workspaces-view',
|
this.actor = new St.Widget({ style_class: 'workspaces-view',
|
||||||
reactive: true });
|
reactive: true });
|
||||||
this.actor.connect('destroy', this._onDestroy.bind(this));
|
this.actor.connect('destroy', this._onDestroy.bind(this));
|
||||||
global.focus_manager.add_group(this.actor);
|
|
||||||
|
|
||||||
// The actor itself isn't a drop target, so we don't want to pick on its area
|
// The actor itself isn't a drop target, so we don't want to pick on its area
|
||||||
this.actor.set_size(0, 0);
|
this.actor.set_size(0, 0);
|
||||||
@ -428,6 +427,10 @@ var WorkspacesDisplay = new Lang.Class({
|
|||||||
this.actor.connect('notify::allocation', this._updateWorkspacesActualGeometry.bind(this));
|
this.actor.connect('notify::allocation', this._updateWorkspacesActualGeometry.bind(this));
|
||||||
this.actor.connect('parent-set', this._parentSet.bind(this));
|
this.actor.connect('parent-set', this._parentSet.bind(this));
|
||||||
|
|
||||||
|
this._viewsContainer = new St.Widget();
|
||||||
|
Main.layoutManager.overviewGroup.add_actor(this._viewsContainer);
|
||||||
|
global.focus_manager.add_group(this._viewsContainer);
|
||||||
|
|
||||||
let clickAction = new Clutter.ClickAction();
|
let clickAction = new Clutter.ClickAction();
|
||||||
clickAction.connect('clicked', action => {
|
clickAction.connect('clicked', action => {
|
||||||
// Only switch to the workspace when there's no application
|
// Only switch to the workspace when there's no application
|
||||||
@ -579,7 +582,7 @@ var WorkspacesDisplay = new Lang.Class({
|
|||||||
}
|
}
|
||||||
|
|
||||||
this._workspacesViews.push(view);
|
this._workspacesViews.push(view);
|
||||||
Main.layoutManager.overviewGroup.add_actor(view.actor);
|
this._viewsContainer.add_actor(view.actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
this._updateWorkspacesFullGeometry();
|
this._updateWorkspacesFullGeometry();
|
||||||
|
Loading…
Reference in New Issue
Block a user