diff --git a/containments/taskpanel/package/contents/ui/TaskSwitcher.qml b/containments/taskpanel/package/contents/ui/TaskSwitcher.qml index 59a09034..45d0d128 100644 --- a/containments/taskpanel/package/contents/ui/TaskSwitcher.qml +++ b/containments/taskpanel/package/contents/ui/TaskSwitcher.qml @@ -78,8 +78,16 @@ NanoShell.FullScreenOverlay { } function setSingleActiveWindow(id) { - if (id >= 0) { - window.model.requestActivate(window.model.index(id, 0)); + if (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: { currentTaskIndex = -1; window.hide(); - plasmoid.nativeInterface.showDesktop = true; + //plasmoid.nativeInterface.showDesktop = true; + + root.minimizeAll(); } } } diff --git a/containments/taskpanel/package/contents/ui/main.qml b/containments/taskpanel/package/contents/ui/main.qml index 897fa4fc..7968f839 100644 --- a/containments/taskpanel/package/contents/ui/main.qml +++ b/containments/taskpanel/package/contents/ui/main.qml @@ -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 { id: tasksModel groupMode: TaskManager.TasksModel.GroupDisabled @@ -189,7 +207,8 @@ PlasmaCore.ColorScope { checkable: true onCheckedChanged: { taskSwitcher.hide(); - plasmoid.nativeInterface.showDesktop = checked; + root.minimizeAll(); + //plasmoid.nativeInterface.showDesktop = checked; } onPressed: mainMouseArea.managePressed(mouse); onPositionChanged: mainMouseArea.positionChanged(mouse);