53 lines
1.6 KiB
QML
53 lines
1.6 KiB
QML
import QtQuick
|
|
import Quickshell
|
|
import Quickshell.Widgets
|
|
import Quickshell.Services.SystemTray
|
|
import qs.Modules
|
|
|
|
IconImage {
|
|
id: root
|
|
required property SystemTrayItem item
|
|
property var customMenu
|
|
|
|
source: root.item.icon
|
|
implicitSize: 15
|
|
MouseArea {
|
|
anchors.fill: parent
|
|
acceptedButtons: Qt.LeftButton | Qt.RightButton
|
|
onClicked: event => {
|
|
switch (event.button) {
|
|
case Qt.LeftButton: root.item.activate(); break;
|
|
case Qt.RightButton:
|
|
if (root.item.hasMenu) {
|
|
|
|
root.customMenu = menuComponent.createObject(root);
|
|
root.customMenu.menuHandle = root.item.menu;
|
|
|
|
const window = QsWindow.window;
|
|
const widgetRect = window.contentItem.mapFromItem(root, 0, root.height + 4, root.width, root.height);
|
|
root.customMenu.anchor.rect = widgetRect
|
|
root.customMenu.anchor.window = window
|
|
root.customMenu.anchor.adjustment = PopupAdjustment.Flip
|
|
root.customMenu.visible = true;
|
|
root.customMenu.rebuild();
|
|
// menuAnchor.anchor.rect = widgetRect;
|
|
// menuAnchor.open();
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
Component {
|
|
id: menuComponent
|
|
CustomTrayMenu {}
|
|
}
|
|
|
|
// QsMenuAnchor {
|
|
// id: menuAnchor
|
|
// menu: root.item.menu
|
|
// anchor.window: root.QsWindow.window?? null
|
|
// anchor.adjustment: PopupAdjustment.Flip
|
|
// }
|
|
}
|