diff options
Diffstat (limited to 'lua/astal')
-rw-r--r-- | lua/astal/application.lua | 2 | ||||
-rw-r--r-- | lua/astal/init.lua | 2 | ||||
-rw-r--r-- | lua/astal/widget.lua | 9 |
3 files changed, 12 insertions, 1 deletions
diff --git a/lua/astal/application.lua b/lua/astal/application.lua index 551367a..8402a59 100644 --- a/lua/astal/application.lua +++ b/lua/astal/application.lua @@ -25,7 +25,7 @@ local app = AstalLua() ---@field cursor_theme? string ---@field css? string ---@field hold? boolean ----@field request_handler? fun(msg: string, response: fun(res: string)) +---@field request_handler? fun(msg: string, response: fun(res: any)) ---@param config StartConfig | nil ---@param callback function | nil diff --git a/lua/astal/init.lua b/lua/astal/init.lua index c247533..37c7119 100644 --- a/lua/astal/init.lua +++ b/lua/astal/init.lua @@ -1,6 +1,7 @@ local lgi = require("lgi") local Astal = lgi.require("Astal", "0.1") local Gtk = lgi.require("Gtk", "3.0") +local Gdk = lgi.require("Gdk", "3.0") local GObject = lgi.require("GObject", "2.0") local Widget = require("astal.widget") local Variable = require("astal.variable") @@ -23,6 +24,7 @@ return { Astal = Astal, Gtk = Gtk, + Gdk = Gdk, GObject = GObject, GLib = lgi.require("GLib", "2.0"), Gio = lgi.require("Gio", "2.0"), diff --git a/lua/astal/widget.lua b/lua/astal/widget.lua index 2f58b7a..7be240f 100644 --- a/lua/astal/widget.lua +++ b/lua/astal/widget.lua @@ -3,6 +3,7 @@ local Astal = lgi.require("Astal", "0.1") local Gtk = lgi.require("Gtk", "3.0") local GObject = lgi.require("GObject", "2.0") local Binding = require("astal.binding") +local exec_async = require("astal.process").exec_async local function filter(tbl, fn) local copy = {} @@ -101,6 +102,14 @@ local function astalify(ctor) end end + for prop, value in pairs(props) do + if string.sub(prop, 0, 2) == "on" and type(value) ~= "function" then + props[prop] = function() + exec_async(value, print, print) + end + end + end + local widget = ctor(props) for prop, binding in pairs(bindings) do |