func (hds *Heads) SwitchWorkspaces(wk1, wk2 *workspace.Workspace) { v1, v2 := hds.VisibleIndex(wk1), hds.VisibleIndex(wk2) switch { case v1 > -1 && v2 > -1: wk1.Hide() wk2.Hide() hds.visibles[v1], hds.visibles[v2] = hds.visibles[v2], hds.visibles[v1] wk1.Show() wk2.Show() case v1 > -1 && v2 == -1: wk1.Hide() hds.visibles[v1] = wk2 wk2.Show() case v1 == -1 && v2 > -1: wk2.Hide() hds.visibles[v2] = wk1 wk1.Show() case v1 == -1 && v2 == -1: // Meaningless default: panic("unreachable") } }