WorkspacesView: don't fail when doing window DND from the last workspace

DND of windows has a lot of side effects, including the possibility of
current workspace disappering from under our feet. We need to account
for that when trying to activate it.

https://bugzilla.gnome.org/show_bug.cgi?id=685285
This commit is contained in:
Giovanni Campagna 2013-01-19 02:26:44 +01:00
parent 57f27572ae
commit 9e60a55dd7

View File

@ -389,6 +389,15 @@ const WorkspacesView = new Lang.Class({
let current = Math.round(adj.value); let current = Math.round(adj.value);
if (active != current) { if (active != current) {
if (!this._workspaces[current]) {
// The current workspace was destroyed. This could happen
// when you are on the last empty workspace, and consolidate
// windows using the thumbnail bar.
// In that case, the intended behavior is to stay on the empty
// workspace, which is the last one, so pick it.
current = this._workspaces.length - 1;
}
let metaWorkspace = this._workspaces[current].metaWorkspace; let metaWorkspace = this._workspaces[current].metaWorkspace;
metaWorkspace.activate(global.get_current_time()); metaWorkspace.activate(global.get_current_time());
} }