windowManager: Actually respect hasWorkspaces

We've long had the hasWorkspaces property, but it doesn't seem like
it was ever used. Implement it so that we don't have workspaces in
initial-setup mode.

Since it's difficult to make it change at runtime with a decent set
of semantics, and we never expect that to happen, don't bother
implementing it dynamically.

https://bugzilla.gnome.org/show_bug.cgi?id=698593
This commit is contained in:
Jasper St. Pierre 2013-06-16 00:21:21 -04:00
parent b4567acc6b
commit ed178b702f

View File

@ -473,13 +473,17 @@ const WindowManager = new Lang.Class({
this._dimWindow(this._dimmedWindows[i]); this._dimWindow(this._dimmedWindows[i]);
})); }));
this._workspaceTracker = new WorkspaceTracker(this); if (Main.sessionMode.hasWorkspaces)
this._workspaceTracker = new WorkspaceTracker(this);
global.screen.override_workspace_layout(Meta.ScreenCorner.TOPLEFT, global.screen.override_workspace_layout(Meta.ScreenCorner.TOPLEFT,
false, -1, 1); false, -1, 1);
}, },
keepWorkspaceAlive: function(workspace, duration) { keepWorkspaceAlive: function(workspace, duration) {
if (!this._workspaceTracker)
return;
this._workspaceTracker.keepWorkspaceAlive(workspace, duration); this._workspaceTracker.keepWorkspaceAlive(workspace, duration);
}, },
@ -829,7 +833,7 @@ const WindowManager = new Lang.Class({
}, },
_switchWorkspace : function(shellwm, from, to, direction) { _switchWorkspace : function(shellwm, from, to, direction) {
if (!this._shouldAnimate()) { if (!Main.sessionMode.hasWorkspaces || !this._shouldAnimate()) {
shellwm.completed_switch_workspace(); shellwm.completed_switch_workspace();
return; return;
} }
@ -982,6 +986,9 @@ const WindowManager = new Lang.Class({
}, },
_showWorkspaceSwitcher : function(display, screen, window, binding) { _showWorkspaceSwitcher : function(display, screen, window, binding) {
if (!Main.sessionMode.hasWorkspaces)
return;
if (screen.n_workspaces == 1) if (screen.n_workspaces == 1)
return; return;
@ -1023,14 +1030,19 @@ const WindowManager = new Lang.Class({
}, },
actionMoveWorkspace: function(workspace) { actionMoveWorkspace: function(workspace) {
if (!Main.sessionMode.hasWorkspaces)
return;
let activeWorkspace = global.screen.get_active_workspace(); let activeWorkspace = global.screen.get_active_workspace();
if (activeWorkspace != workspace) if (activeWorkspace != workspace)
workspace.activate(global.get_current_time()); workspace.activate(global.get_current_time());
}, },
actionMoveWindow: function(window, workspace) { actionMoveWindow: function(window, workspace) {
if (!Main.sessionMode.hasWorkspaces)
return;
let activeWorkspace = global.screen.get_active_workspace(); let activeWorkspace = global.screen.get_active_workspace();
if (activeWorkspace != workspace) { if (activeWorkspace != workspace) {
@ -1043,6 +1055,5 @@ const WindowManager = new Lang.Class({
global.display.clear_mouse_mode(); global.display.clear_mouse_mode();
workspace.activate_with_focus (window, global.get_current_time()); workspace.activate_with_focus (window, global.get_current_time());
} }
}, },
}); });