""" prompt_toolkit input hook for GTK 4. """ from gi.repository import GLib class _InputHook: def __init__(self, context): self._quit = False GLib.io_add_watch( context.fileno(), GLib.PRIORITY_DEFAULT, GLib.IO_IN, self.quit ) def quit(self, *args, **kwargs): self._quit = True return False def run(self): context = GLib.MainContext.default() while not self._quit: context.iteration(True) def inputhook(context): hook = _InputHook(context) hook.run()