minimize instead of showdesktop

keep all windows minimized except the active one
This commit is contained in:
Marco Martin 2020-07-22 14:22:10 +02:00
parent b79e4f302b
commit 76050a60bd
2 changed files with 33 additions and 4 deletions

View file

@ -78,8 +78,16 @@ NanoShell.FullScreenOverlay {
} }
function setSingleActiveWindow(id) { function setSingleActiveWindow(id) {
if (id >= 0) { if (id < 0) {
window.model.requestActivate(window.model.index(id, 0)); return;
}
for (var i = 0 ; i < tasksModel.count; i++) {
var idx = window.model.index(i, 0)
if (i == id) {
window.model.requestActivate(idx);
} else if (!tasksModel.data(idx, TaskManager.AbstractTasksModel.IsMinimized)) {
tasksModel.requestToggleMinimized(idx);
}
} }
} }
@ -238,7 +246,9 @@ NanoShell.FullScreenOverlay {
onClicked: { onClicked: {
currentTaskIndex = -1; currentTaskIndex = -1;
window.hide(); window.hide();
plasmoid.nativeInterface.showDesktop = true; //plasmoid.nativeInterface.showDesktop = true;
root.minimizeAll();
} }
} }
} }

View file

@ -54,6 +54,24 @@ PlasmaCore.ColorScope {
} }
} }
function minimizeAll() {
for (var i = 0 ; i < tasksModel.count; i++) {
var idx = tasksModel.makeModelIndex(i);
if (!tasksModel.data(idx, TaskManager.AbstractTasksModel.IsMinimized)) {
tasksModel.requestToggleMinimized(idx);
}
}
}
function restoreAll() {
for (var i = 0 ; i < tasksModel.count; i++) {
var idx = tasksModel.makeModelIndex(i);
if (tasksModel.data(idx, TaskManager.AbstractTasksModel.IsMinimized)) {
tasksModel.requestToggleMinimized(idx);
}
}
}
TaskManager.TasksModel { TaskManager.TasksModel {
id: tasksModel id: tasksModel
groupMode: TaskManager.TasksModel.GroupDisabled groupMode: TaskManager.TasksModel.GroupDisabled
@ -189,7 +207,8 @@ PlasmaCore.ColorScope {
checkable: true checkable: true
onCheckedChanged: { onCheckedChanged: {
taskSwitcher.hide(); taskSwitcher.hide();
plasmoid.nativeInterface.showDesktop = checked; root.minimizeAll();
//plasmoid.nativeInterface.showDesktop = checked;
} }
onPressed: mainMouseArea.managePressed(mouse); onPressed: mainMouseArea.managePressed(mouse);
onPositionChanged: mainMouseArea.positionChanged(mouse); onPositionChanged: mainMouseArea.positionChanged(mouse);