run awesome.signals in glib idle context

This commit is contained in:
BZ 2021-05-15 14:48:14 +02:00
parent c9a8b3fa03
commit aaaea4c35f
1 changed files with 11 additions and 2 deletions

View File

@ -3,6 +3,7 @@ local gears = require("gears")
local awful = require("awful")
local theme = require("beautiful")
local naughty = require("naughty")
local glib = require("lgi").GLib
local dpi = theme.xresources.apply_dpi
local module = {}
@ -33,6 +34,14 @@ local function update_on_signal(c, signal, widget)
table.insert(widgets, widget)
end
local glib_context = function(fn)
return function(args)
glib.idle_add(glib.PRIORITY_DEFAULT_IDLE, function()
fn(args)
end)
end
end
local function ori(pos)
if pos == "left" or pos == "right" then
return "v"
@ -292,7 +301,7 @@ local add_hot_corner = function(args)
awesome.emit_signal(signal)
end))
if must_connect_signal then
awesome.connect_signal(signal, actions[btn.name])
awesome.connect_signal(signal, glib_context(actions[btn.name]))
end
end
end
@ -305,7 +314,7 @@ local add_hot_corner = function(args)
awesome.emit_signal(signal)
end)
if must_connect_signal then
awesome.connect_signal(signal, actions[action])
awesome.connect_signal(signal, glib_context(actions[action]))
end
end
end