i3-companion: ensure variables are captured when wrapping event

This commit is contained in:
Vincent Bernat 2021-07-11 22:46:53 +02:00
parent 83ba6b5a23
commit d56b44114a

View file

@ -456,6 +456,7 @@ async def main(options):
if isinstance(event, DBusSignal):
for bus in {i3.session_bus, i3.system_bus}:
def wrapping(fn, event):
@ravel.signal(
name=event.member,
in_signature=event.signature,
@ -464,13 +465,14 @@ async def main(options):
)
async def wrapped(path, args):
return await fn(i3, event, path, *args)
return wrapped
bus.listen_signal(
path=event.path,
fallback=True,
interface=event.interface,
name=event.member,
func=wrapped,
func=wrapping(fn, event),
)
await i3.main()