altTab: Improve cycling to a window on another workspace
Both 'cycle-group' and 'cycle-window' shortcuts allow cycling through windows on all workspaces. While this works, it looks quite broken since we started showing clones for highlighting: the selected window vanishes (when its clone is destroyed), then slides back in with its workspace. Instead, slide the selected window to its workspace like we do for the 'move-to-workspace-*' shortcuts. https://bugzilla.gnome.org/show_bug.cgi?id=771536
This commit is contained in:
parent
d6a78d61d1
commit
a029a35050
@ -444,7 +444,21 @@ const CyclerPopup = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_finish: function() {
|
_finish: function() {
|
||||||
Main.activateWindow(this._items[this._selectedIndex]);
|
let window = this._items[this._selectedIndex];
|
||||||
|
let ws = window.get_workspace();
|
||||||
|
let activeWs = global.screen.get_active_workspace();
|
||||||
|
|
||||||
|
if (activeWs == ws) {
|
||||||
|
Main.activateWindow(window);
|
||||||
|
} else {
|
||||||
|
// If the selected window is on a different workspace, we don't
|
||||||
|
// want it to disappear, then slide in with the workspace; instead,
|
||||||
|
// always activate it on the active workspace ...
|
||||||
|
activeWs.activate_with_focus(window, global.get_current_time());
|
||||||
|
|
||||||
|
// ... then slide it over to the original workspace if necessary
|
||||||
|
Main.wm.actionMoveWindow(window, ws);
|
||||||
|
}
|
||||||
|
|
||||||
this.parent();
|
this.parent();
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user