diff --git a/kittens/tui/handler.py b/kittens/tui/handler.py index aafe461f8..a7cb98d70 100644 --- a/kittens/tui/handler.py +++ b/kittens/tui/handler.py @@ -147,6 +147,16 @@ class Handler: def pending_update(self) -> ContextManager[None]: return pending_update(self.write) + @classmethod + def with_pending_update(cls, func: Callable) -> Callable: + from functools import wraps + + @wraps(func) + def f(*a: Any, **kw: Any) -> Any: + with a[0].pending_update(): + return func(*a, **kw) + return f + class HandleResult: diff --git a/kittens/unicode_input/main.py b/kittens/unicode_input/main.py index 2ab396217..bcfc60827 100644 --- a/kittens/unicode_input/main.py +++ b/kittens/unicode_input/main.py @@ -391,6 +391,7 @@ class UnicodeInput(Handler): text += ' ' * extra self.print(styled(text, reverse=True)) + @Handler.with_pending_update def draw_screen(self) -> None: self.write(clear_screen()) self.draw_title_bar()