aboutsummaryrefslogtreecommitdiff
path: root/modules/system/quickshell/TrayMenu.qml
diff options
context:
space:
mode:
Diffstat (limited to 'modules/system/quickshell/TrayMenu.qml')
-rw-r--r--modules/system/quickshell/TrayMenu.qml39
1 files changed, 39 insertions, 0 deletions
diff --git a/modules/system/quickshell/TrayMenu.qml b/modules/system/quickshell/TrayMenu.qml
new file mode 100644
index 0000000..9e2e9f2
--- /dev/null
+++ b/modules/system/quickshell/TrayMenu.qml
@@ -0,0 +1,39 @@
+import QtQuick
+import QtQuick.Layouts
+import Quickshell
+
+Scope {
+ id: root
+ property var menuItem: null
+ property var parentWindow
+ property var anchorItem
+ property bool active: false
+
+ function open(item) {
+ anchorItem = item
+ active = true
+ menuAnchor.open()
+ }
+
+ function close() {
+ active = false
+ menuAnchor.close()
+ }
+
+ QsMenuAnchor {
+ id: menuAnchor
+ menu: root.menuItem
+
+ anchor.window: root.parentWindow
+ anchor.item: root.anchorItem
+ anchor.edges: Edges.Bottom
+ anchor.gravity: Edges.Bottom
+ anchor.margins.top: Theme.popupGap
+
+ onVisibleChanged: {
+ if (!visible && root.active) {
+ root.active = false
+ }
+ }
+ }
+}