diff --git a/docs/changelog.rst b/docs/changelog.rst index 6005e2655..f1872b9b0 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -178,6 +178,8 @@ Detailed list of changes - Allow dragging to move scrollbar after clicking on track when :opt:`scrollbar_jump_on_click` is enabled (:pull:`10085`) +- macOS: Fix regression in 0.47.0 that broke passing :kbd:`Cmd+C` on to terminal applications when no text is selected (:iss:`10087`) + 0.47.1 [2026-05-28] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/kitty/boss.py b/kitty/boss.py index 1f0e8fc18..2e5cbe8cd 100644 --- a/kitty/boss.py +++ b/kitty/boss.py @@ -3743,5 +3743,6 @@ def search_scrollback_in_active(self) -> None: def copy_or_noop(self) -> bool | None: if w := self.active_window: - return w.copy_or_noop() + ans = w.copy_or_noop() + return ans return True diff --git a/kitty/keys.py b/kitty/keys.py index 99d9ba5eb..259544261 100644 --- a/kitty/keys.py +++ b/kitty/keys.py @@ -218,6 +218,13 @@ def dispatch_possible_special_key(self, ev: KeyEvent) -> bool: # the shortcuts in the global menubar will have been bypassed so trigger them here key_action = global_key_action else: + # On macOS copy_or_noop is mapped to Cmd+C by default and gets + # disabled when there is no copyable text so special case it + # and pass it on. + if is_macos: + for action in global_key_action: + if action.definition == 'copy_or_noop': + return False return True if key_action is None: if is_modifier_key(ev.key):