macOS: Fix regression in 0.47.0 that broke passing Cmd+C on to terminal applications when no text is selected

Fixes #10087
This commit is contained in:
Kovid Goyal 2026-05-29 07:47:29 +05:30
parent 74b80e9a29
commit d6b662e706
No known key found for this signature in database
GPG key ID: 06BC317B515ACE7C
3 changed files with 11 additions and 1 deletions

View file

@ -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]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View file

@ -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

View file

@ -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):