diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js index adc94cf02..2eaf51b4e 100644 --- a/js/ui/appDisplay.js +++ b/js/ui/appDisplay.js @@ -519,8 +519,17 @@ WellDisplayItem.prototype = { if (this._windows.length == 0) this.launch(); else { + /* Pick the first window and activate it, switching to its workspace + * if necessary. In the future, we want to have a menu dropdown here. */ let first = this._windows[0]; - first.activate(Clutter.get_current_event_time()); + let firstWorkspace = first.get_workspace(); + let currentWorkspaceIndex = Shell.Global.get().screen.get_active_workspace_index(); + let currentWorkspace = Shell.Global.get().screen.get_workspace_by_index(currentWorkspaceIndex); + let ts = Clutter.get_current_event_time(); + if (currentWorkspace != firstWorkspace) + firstWorkspace.activate_with_focus(first, ts); + else + first.activate(ts); } this.emit('activated'); },