quickshell: fix tray icon click handling (left/right click, onlyMenu)

Left click → activate (or open menu if onlyMenu is set)
Right click → open context menu (or secondaryActivate if no menu)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
rope 2026-06-04 14:09:19 +01:00
parent 35c0e2dc2a
commit c376f0d266

View file

@ -1177,6 +1177,7 @@ in
anchors.fill: parent anchors.fill: parent
acceptedButtons: Qt.LeftButton | Qt.RightButton acceptedButtons: Qt.LeftButton | Qt.RightButton
onClicked: (event) => { onClicked: (event) => {
if (event.button === Qt.RightButton) {
if (modelData.hasMenu) { if (modelData.hasMenu) {
bar.toggleDropdown(contextMenu, function() { bar.toggleDropdown(contextMenu, function() {
let pos = parent.mapToItem(bar.contentItem, parent.width / 2, 0); let pos = parent.mapToItem(bar.contentItem, parent.width / 2, 0);
@ -1184,6 +1185,17 @@ in
contextMenu.trayItem = modelData; contextMenu.trayItem = modelData;
menuOpener.menu = modelData.menu; menuOpener.menu = modelData.menu;
}); });
} else {
modelData.secondaryActivate();
}
} else {
if (modelData.onlyMenu && modelData.hasMenu) {
bar.toggleDropdown(contextMenu, function() {
let pos = parent.mapToItem(bar.contentItem, parent.width / 2, 0);
contextMenu.dropdownX = pos.x;
contextMenu.trayItem = modelData;
menuOpener.menu = modelData.menu;
});
} else { } else {
modelData.activate(); modelData.activate();
} }
@ -1193,6 +1205,7 @@ in
} }
} }
} }
}
// Reusable dropdown component // Reusable dropdown component
component BarDropdown: Item { component BarDropdown: Item {