Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:epopov:branches:openSUSE:Factory
plasma6-workspace
2005-system-tray-applet.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 2005-system-tray-applet.patch of Package plasma6-workspace
diff --git a/applets/systemtray/package/contents/ui/ExpandedRepresentation.qml b/applets/systemtray/package/contents/ui/ExpandedRepresentation.qml index d144d17c11fada69ddeb996721651aaee9d1f6bd..372233d6b2485f3de7d3159ec3db0f42e8a2e9fe 100644 --- a/applets/systemtray/package/contents/ui/ExpandedRepresentation.qml +++ b/applets/systemtray/package/contents/ui/ExpandedRepresentation.qml @@ -80,13 +80,9 @@ Item { if (actionsButton.applet === null) { return []; } - const primaryActions = []; - actionsButton.applet.plasmoid.contextualActions.forEach(action => { - if (action.priority == PlasmaCore.Action.HighPriority) { - primaryActions.push(action); - } - }) - return primaryActions; + return actionsButton.applet.plasmoid.contextualActions.filter(action => { + return !action.isSeparator && action.priority === PlasmaCore.Action.HighPriority; + }); } delegate: PlasmaComponents.ToolButton { @@ -104,6 +100,7 @@ Item { source: parent.qAction ? parent.qAction.icon.name : "" } + enabled: qAction && qAction.enabled checkable: qAction && qAction.checkable checked: qAction && qAction.checked display: PlasmaComponents.AbstractButton.IconOnly @@ -129,6 +126,7 @@ Item { PlasmaComponents.ToolButton { id: actionsButton visible: visibleActions > 0 + enabled: visibleActions > 1 || (singleAction && singleAction.enabled) checked: visibleActions > 1 ? configMenu.status !== PlasmaExtras.Menu.Closed : singleAction && singleAction.checked property QtObject applet: systemTrayState.activeApplet || root property int visibleActions: menuItemFactory.count @@ -186,17 +184,23 @@ Item { if (!actionsButton.applet) { return []; } - let actions = []; - for (let i in actionsButton.applet.plasmoid.contextualActions) { - const action = actionsButton.applet.plasmoid.contextualActions[i]; - if (action.visible - && action.priority > PlasmaCore.Action.LowPriority - && !primaryActionButtons.model.includes(action) - && action !== actionsButton.applet.plasmoid.internalAction("configure")) { - actions.push(action); - } - } - return actions; + return actionsButton.applet.plasmoid.contextualActions + .filter(action => { + return action.visible && + action.priority === PlasmaCore.Action.NormalPriority && + action !== actionsButton.applet.plasmoid.internalAction("configure"); + }) + // squash separators + .reduce((dstActions, action, i, srcActions) => { + if (!action.isSeparator) { + const prevAction = srcActions[i - 1]; + if (prevAction?.isSeparator && dstActions.length > 0) { + dstActions.push(prevAction); + } + dstActions.push(action); + } + return dstActions; + }, []); } delegate: PlasmaExtras.MenuItem { id: menuItem
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor