diff --git a/applets/taskmanager/package/contents/config/main.xml b/applets/taskmanager/package/contents/config/main.xml
--- a/applets/taskmanager/package/contents/config/main.xml
+++ b/applets/taskmanager/package/contents/config/main.xml
@@ -42,6 +42,14 @@
+
+
+
+
+
+
+
+
2
diff --git a/applets/taskmanager/package/contents/ui/ContextMenu.qml b/applets/taskmanager/package/contents/ui/ContextMenu.qml
--- a/applets/taskmanager/package/contents/ui/ContextMenu.qml
+++ b/applets/taskmanager/package/contents/ui/ContextMenu.qml
@@ -632,6 +632,20 @@
separator: true
}
+ PlasmaComponents.MenuItem {
+ visible: (plasmoid.pluginName != "org.kde.plasma.icontasks") && menu.get(atm.IsWindow) === true
+
+ checkable: true
+ checked: menu.visualParent && menu.get(atm.IsPinned) === true
+
+ text: i18n("Show the application icon only")
+
+ onClicked: {
+ tasksModel.requestTogglePin(menu.modelIndex)
+ taskList.layout()
+ }
+ }
+
PlasmaComponents.MenuItem {
visible: (plasmoid.configuration.groupingStrategy != 0) && menu.get(atm.IsWindow) === 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
@@ -503,7 +503,7 @@
PlasmaComponents.Label {
id: label
- visible: (inPopup || !iconsOnly && model.IsLauncher !== true
+ visible: (inPopup || !iconsOnly && !model.IsPinned && model.IsLauncher !== true
&& (parent.width - iconBox.height - units.smallSpacing) >= (theme.mSize(theme.defaultFont).width * LayoutManager.minimumMColumns()))
anchors {
diff --git a/applets/taskmanager/package/contents/ui/code/layout.js b/applets/taskmanager/package/contents/ui/code/layout.js
--- a/applets/taskmanager/package/contents/ui/code/layout.js
+++ b/applets/taskmanager/package/contents/ui/code/layout.js
@@ -220,7 +220,7 @@
adjustedWidth = width;
if (!tasks.vertical && !tasks.iconsOnly && (plasmoid.configuration.separateLaunchers || stripes == 1)) {
- if (item.m.IsLauncher === true
+ if (item.m.IsLauncher === true || item.m.IsPinned === true
|| (!plasmoid.configuration.separateLaunchers && item.m.IsStartup === true && item.m.HasLauncher === true)) {
adjustedWidth = launcherWidth();
} else if (stripes > 1 && i == tasksModel.logicalLauncherCount) {
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
@@ -146,6 +146,14 @@
plasmoid.configuration.groupingLauncherUrlBlacklist = groupingLauncherUrlBlacklist;
}
+ onPinAppIdListChanged: {
+ plasmoid.configuration.pinAppIdList = pinAppIdList;
+ }
+
+ onPinLauncherUrlListChanged: {
+ plasmoid.configuration.pinLauncherUrlList = pinLauncherUrlList;
+ }
+
function sortModeEnumValue(index) {
switch (index) {
case 0:
@@ -176,6 +184,8 @@
launcherList = plasmoid.configuration.launchers;
groupingAppIdBlacklist = plasmoid.configuration.groupingAppIdBlacklist;
groupingLauncherUrlBlacklist = plasmoid.configuration.groupingLauncherUrlBlacklist;
+ pinAppIdList = plasmoid.configuration.pinAppIdList;
+ pinLauncherUrlList = plasmoid.configuration.pinLauncherUrlList;
// Only hook up view only after the above churn is done.
taskRepeater.model = tasksModel;
@@ -333,6 +343,8 @@
onLaunchersChanged: tasksModel.launcherList = plasmoid.configuration.launchers
onGroupingAppIdBlacklistChanged: tasksModel.groupingAppIdBlacklist = plasmoid.configuration.groupingAppIdBlacklist;
onGroupingLauncherUrlBlacklistChanged: tasksModel.groupingLauncherUrlBlacklist = plasmoid.configuration.groupingLauncherUrlBlacklist;
+ onPinAppIdListChanged: tasksModel.pinAppIdList = plasmoid.configuration.pinAppIdList;
+ onPinLauncherUrlListChanged: tasksModel.pinLauncherUrlList = plasmoid.configuration.pinLauncherUrlList;
}
TaskManagerApplet.DragHelper {