summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--examples/lua/simple-bar/widget/Bar.lua26
-rw-r--r--lang/lua/astal/gtk3/widget.lua7
2 files changed, 16 insertions, 17 deletions
diff --git a/examples/lua/simple-bar/widget/Bar.lua b/examples/lua/simple-bar/widget/Bar.lua
index bf230bb..843e292 100644
--- a/examples/lua/simple-bar/widget/Bar.lua
+++ b/examples/lua/simple-bar/widget/Bar.lua
@@ -19,24 +19,16 @@ local function SysTray()
return Widget.Box({
bind(tray, "items"):as(function(items)
return map(items, function(item)
- if item.icon_theme_path ~= nil then
- App:add_icons(item.icon_theme_path)
- end
-
- local menu = item:create_menu()
-
- return Widget.Button({
+ return Widget.MenuButton({
tooltip_markup = bind(item, "tooltip_markup"),
- on_destroy = function()
- if menu ~= nil then
- menu:destroy()
- end
- end,
- on_click_release = function(self)
- if menu ~= nil then
- menu:popup_at_widget(self, Gdk.Gravity.SOUTH, Gdk.Gravity.NORTH, nil)
- end
- end,
+ use_popover = false,
+ menu_model = bind(item, "menu-model"),
+ action_group = bind(item, "action-group"):as(function(ag)
+ return {
+ prefix = "dbusmenu",
+ action_group = ag
+ }
+ end),
Widget.Icon({
g_icon = bind(item, "gicon"),
}),
diff --git a/lang/lua/astal/gtk3/widget.lua b/lang/lua/astal/gtk3/widget.lua
index beaad6c..3286c26 100644
--- a/lang/lua/astal/gtk3/widget.lua
+++ b/lang/lua/astal/gtk3/widget.lua
@@ -18,6 +18,7 @@ local Widget = {
Label = astalify(Gtk.Label),
LevelBar = astalify(Astal.LevelBar),
-- TODO: ListBox
+ MenuButton = astalify(Gtk.MenuButton),
Overlay = astalify(Astal.Overlay),
Revealer = astalify(Gtk.Revealer),
Scrollable = astalify(Astal.Scrollable),
@@ -63,6 +64,12 @@ Gtk.Widget._attribute.click_through = {
set = Astal.widget_set_click_through,
}
+Gtk.Widget._attribute.action_group = {
+ set = function (self, v)
+ self:insert_action_group(v.prefix, v.action_group)
+ end
+}
+
local no_implicit_destroy = {}
Gtk.Widget._attribute.no_implicit_destroy = {
get = function(self)