From 85061c3d9fc67ffa1d7f6a44b4408f53241047bb Mon Sep 17 00:00:00 2001 From: Devin Lin Date: Fri, 8 Mar 2024 10:09:06 -0500 Subject: [PATCH] taskswitcher: Do not show apps marked as "skipSwitcher" --- kwin/mobiletaskswitcher/qml/TaskSwitcher.qml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/kwin/mobiletaskswitcher/qml/TaskSwitcher.qml b/kwin/mobiletaskswitcher/qml/TaskSwitcher.qml index 310e5e6e..d45ac76d 100644 --- a/kwin/mobiletaskswitcher/qml/TaskSwitcher.qml +++ b/kwin/mobiletaskswitcher/qml/TaskSwitcher.qml @@ -14,6 +14,7 @@ import org.kde.plasma.private.mobileshell.shellsettingsplugin as ShellSettings import org.kde.kwin 3.0 as KWinComponents import org.kde.kwin.private.effects 1.0 +import org.kde.kitemmodels /** * Component that provides a task switcher. @@ -45,7 +46,7 @@ FocusScope { id: desktopModel } - property var tasksModel: KWinComponents.WindowFilterModel { + property var baseTasksModel: KWinComponents.WindowFilterModel { activity: KWinComponents.Workspace.currentActivity desktop: KWinComponents.Workspace.currentDesktop screenName: root.targetScreen.name @@ -57,6 +58,16 @@ FocusScope { ~KWinComponents.WindowFilterModel.CriticalNotification } + property var tasksModel: KSortFilterProxyModel { + sourceModel: baseTasksModel + filterRoleName: 'skipSwitcher' + filterRowCallback: function(source_row, source_parent) { + const window = sourceModel.data(sourceModel.index(source_row, 0, source_parent), Qt.DisplayRole); + // ensure apps marked to skip the task switcher are skipped (ex. xwaylandvideobridge) + return !window.skipSwitcher; + } + } + readonly property int tasksCount: taskList.count // keep track of task list events