diff --git a/applets/taskmanager/package/contents/code/tools.js b/applets/taskmanager/package/contents/code/tools.js --- a/applets/taskmanager/package/contents/code/tools.js +++ b/applets/taskmanager/package/contents/code/tools.js @@ -93,7 +93,7 @@ tasksModel.requestActivate(target); } -function activateTask(index, model, modifiers) { +function activateTask(index, model, modifiers, task) { if (modifiers & Qt.ShiftModifier) { tasksModel.requestNewInstance(index); } else if (model.IsGroupParent === true) { diff --git a/applets/taskmanager/package/contents/ui/Task.qml b/applets/taskmanager/package/contents/ui/Task.qml --- a/applets/taskmanager/package/contents/ui/Task.qml +++ b/applets/taskmanager/package/contents/ui/Task.qml @@ -119,7 +119,7 @@ tasksModel.requestToggleMinimized(modelIndex()); } } else if (mouse.button == Qt.LeftButton) { - TaskTools.activateTask(modelIndex(), model, mouse.modifiers); + TaskTools.activateTask(modelIndex(), model, mouse.modifiers, task); } } @@ -161,7 +161,7 @@ } } - Keys.onReturnPressed: TaskTools.activateTask(modelIndex(), model, event.modifiers) + Keys.onReturnPressed: TaskTools.activateTask(modelIndex(), model, event.modifiers, task) Keys.onEnterPressed: Keys.onReturnPressed(event); function modelIndex() { diff --git a/applets/taskmanager/package/contents/ui/main.qml b/applets/taskmanager/package/contents/ui/main.qml --- a/applets/taskmanager/package/contents/ui/main.qml +++ b/applets/taskmanager/package/contents/ui/main.qml @@ -388,6 +388,18 @@ } } + // This is called by plasmashell in response to a Meta+number shortcut. + function activateTaskAtIndex(index) { + if (typeof index !== "number") { + return; + } + + var task = taskRepeater.itemAt(index); + if (task) { + TaskTools.activateTask(task.modelIndex(), task.m, null, task); + } + } + function resetDragSource() { dragSource = null; }