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:
parent
b4567acc6b
commit
ed178b702f
@ -473,6 +473,7 @@ const WindowManager = new Lang.Class({
|
|||||||
this._dimWindow(this._dimmedWindows[i]);
|
this._dimWindow(this._dimmedWindows[i]);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
if (Main.sessionMode.hasWorkspaces)
|
||||||
this._workspaceTracker = new WorkspaceTracker(this);
|
this._workspaceTracker = new WorkspaceTracker(this);
|
||||||
|
|
||||||
global.screen.override_workspace_layout(Meta.ScreenCorner.TOPLEFT,
|
global.screen.override_workspace_layout(Meta.ScreenCorner.TOPLEFT,
|
||||||
@ -480,6 +481,9 @@ const WindowManager = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
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());
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user