From 38c05d91a889699ccdb200ab7c70bae8806cce56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 1 Aug 2018 16:13:59 +0200 Subject: [PATCH] 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 --- js/ui/workspacesView.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js index 4ba8db754..76ad8fb96 100644 --- a/js/ui/workspacesView.js +++ b/js/ui/workspacesView.js @@ -33,7 +33,6 @@ var WorkspacesViewBase = new Lang.Class({ this.actor = new St.Widget({ style_class: 'workspaces-view', reactive: true }); 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 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('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(); clickAction.connect('clicked', action => { // Only switch to the workspace when there's no application @@ -579,7 +582,7 @@ var WorkspacesDisplay = new Lang.Class({ } this._workspacesViews.push(view); - Main.layoutManager.overviewGroup.add_actor(view.actor); + this._viewsContainer.add_actor(view.actor); } this._updateWorkspacesFullGeometry();