diff --git a/kittens/diff/main.py b/kittens/diff/main.py index 42fd8dff0..5152b8026 100644 --- a/kittens/diff/main.py +++ b/kittens/diff/main.py @@ -93,7 +93,7 @@ class DiffHandler(Handler): self.highlighting_done = False self.restore_position: Optional[Reference] = None for key_def, action in self.opts.key_definitions.items(): - self.add_shortcut(action, *key_def) + self.add_shortcut(action, key_def) def perform_action(self, action: KittensKeyAction) -> None: func, args = action diff --git a/kittens/tui/handler.py b/kittens/tui/handler.py index 1eb3fa7ac..8c850877e 100644 --- a/kittens/tui/handler.py +++ b/kittens/tui/handler.py @@ -36,7 +36,6 @@ class Handler: self.debug = debug self.cmd = commander(self) self._image_manager = image_manager - self._key_shortcuts: Dict[ParsedShortcut, KittensKeyActionType] = {} @property def image_manager(self) -> ImageManagerType: @@ -48,6 +47,8 @@ class Handler: return self._tui_loop.asycio_loop def add_shortcut(self, action: KittensKeyActionType, spec: Union[str, ParsedShortcut]) -> None: + if not hasattr(self, '_key_shortcuts'): + self._key_shortcuts: Dict[ParsedShortcut, KittensKeyActionType] = {} if isinstance(spec, str): from kitty.key_encoding import parse_shortcut spec = parse_shortcut(spec) diff --git a/kittens/tui/loop.py b/kittens/tui/loop.py index d27cb6b9a..5da1d0479 100644 --- a/kittens/tui/loop.py +++ b/kittens/tui/loop.py @@ -277,14 +277,13 @@ class Loop: pass else: self.handler.on_mouse(ev) - elif q == '~': + elif q in 'u~ABCDHFPQRS': if csi == '200~': self.in_bracketed_paste = True return elif csi == '201~': self.in_bracketed_paste = False return - elif q in 'u~ABCDHFPQRS': try: k = decode_key_event(csi[:-1], q) except Exception: