This commit is contained in:
Kovid Goyal
2024-01-17 08:39:00 +05:30
parent 22dbc94c5f
commit 5e934c081e
2 changed files with 11 additions and 8 deletions

View File

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

View File

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