From a393d11e1c293db86cf29b2ebb8c3c6d5c8d1537 Mon Sep 17 00:00:00 2001
From: matt1432 <matt@nelim.org>
Date: Fri, 20 Dec 2024 01:28:12 -0500
Subject: [PATCH] fix(ags): fix breaking changes for tray

---
 modules/ags/config/widgets/bar/items/tray.tsx | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/modules/ags/config/widgets/bar/items/tray.tsx b/modules/ags/config/widgets/bar/items/tray.tsx
index ce72c80a..40360b4e 100644
--- a/modules/ags/config/widgets/bar/items/tray.tsx
+++ b/modules/ags/config/widgets/bar/items/tray.tsx
@@ -1,4 +1,4 @@
-import { App, Gdk, Gtk, Widget } from 'astal/gtk3';
+import { App, Gtk, Widget } from 'astal/gtk3';
 import { bind, idle } from 'astal';
 
 import AstalTray from 'gi://AstalTray';
@@ -11,24 +11,25 @@ const TrayItem = (item: AstalTray.TrayItem) => {
         App.add_icons(item.iconThemePath);
     }
 
-    const menu = item.create_menu();
-
     return (
         <revealer
             transitionType={Gtk.RevealerTransitionType.SLIDE_RIGHT}
             revealChild={false}
         >
-            <button
+            <menubutton
                 className="tray-item"
                 cursor="pointer"
+
+                usePopover={false}
+                // @ts-expect-error types are wrong
                 tooltipMarkup={bind(item, 'tooltipMarkup')}
-                onDestroy={() => menu?.destroy()}
-                onClickRelease={(self) => {
-                    menu?.popup_at_widget(self, Gdk.Gravity.SOUTH, Gdk.Gravity.NORTH, null);
-                }}
+                // @ts-expect-error types are wrong
+                actionGroup={bind(item, 'actionGroup').as((ag) => ['dbusmenu', ag])}
+                // @ts-expect-error types are wrong
+                menuModel={bind(item, 'menuModel')}
             >
                 <icon gIcon={bind(item, 'gicon')} />
-            </button>
+            </menubutton>
         </revealer>
     );
 };