mirror of
https://github.com/kovidgoyal/kitty
synced 2026-06-08 22:28:24 +02:00
Fix #7004
This commit is contained in:
@@ -375,20 +375,23 @@ class RemoteCommand:
|
||||
return [t]
|
||||
return []
|
||||
|
||||
def windows_for_payload(self, boss: 'Boss', window: Optional['Window'], payload_get: PayloadGetType) -> List['Window']:
|
||||
def windows_for_payload(
|
||||
self, boss: 'Boss', window: Optional['Window'], payload_get: PayloadGetType,
|
||||
window_match_name: str = 'match_window', tab_match_name: str = 'match_tab',
|
||||
) -> List['Window']:
|
||||
if payload_get('all'):
|
||||
windows = list(boss.all_windows)
|
||||
else:
|
||||
window = window or boss.active_window
|
||||
windows = [window] if window else []
|
||||
if payload_get('match_window'):
|
||||
windows = list(boss.match_windows(payload_get('match_window')))
|
||||
if payload_get(window_match_name):
|
||||
windows = list(boss.match_windows(payload_get(window_match_name)))
|
||||
if not windows:
|
||||
raise MatchError(payload_get('match_window'))
|
||||
if payload_get('match_tab'):
|
||||
tabs = tuple(boss.match_tabs(payload_get('match_tab')))
|
||||
raise MatchError(payload_get(window_match_name))
|
||||
if payload_get(tab_match_name):
|
||||
tabs = tuple(boss.match_tabs(payload_get(tab_match_name)))
|
||||
if not tabs:
|
||||
raise MatchError(payload_get('match_tab'), 'tabs')
|
||||
raise MatchError(payload_get(tab_match_name), 'tabs')
|
||||
for tab in tabs:
|
||||
windows += list(tab)
|
||||
return windows
|
||||
|
||||
@@ -177,7 +177,7 @@ are sent as is, not interpreted for escapes.
|
||||
|
||||
def response_from_kitty(self, boss: Boss, window: Optional[Window], payload_get: PayloadGetType) -> ResponseType:
|
||||
sid = payload_get('session_id', '')
|
||||
windows = self.windows_for_payload(boss, None, payload_get)
|
||||
windows = self.windows_for_payload(boss, None, payload_get, window_match_name='match')
|
||||
pdata: str = payload_get('data')
|
||||
encoding, _, q = pdata.partition(':')
|
||||
session = ''
|
||||
|
||||
Reference in New Issue
Block a user