mirror of
https://github.com/kovidgoyal/kitty
synced 2026-07-21 07:55:10 +02:00
Fix #7004
This commit is contained in:
@@ -375,20 +375,23 @@ class RemoteCommand:
|
|||||||
return [t]
|
return [t]
|
||||||
return []
|
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'):
|
if payload_get('all'):
|
||||||
windows = list(boss.all_windows)
|
windows = list(boss.all_windows)
|
||||||
else:
|
else:
|
||||||
window = window or boss.active_window
|
window = window or boss.active_window
|
||||||
windows = [window] if window else []
|
windows = [window] if window else []
|
||||||
if payload_get('match_window'):
|
if payload_get(window_match_name):
|
||||||
windows = list(boss.match_windows(payload_get('match_window')))
|
windows = list(boss.match_windows(payload_get(window_match_name)))
|
||||||
if not windows:
|
if not windows:
|
||||||
raise MatchError(payload_get('match_window'))
|
raise MatchError(payload_get(window_match_name))
|
||||||
if payload_get('match_tab'):
|
if payload_get(tab_match_name):
|
||||||
tabs = tuple(boss.match_tabs(payload_get('match_tab')))
|
tabs = tuple(boss.match_tabs(payload_get(tab_match_name)))
|
||||||
if not tabs:
|
if not tabs:
|
||||||
raise MatchError(payload_get('match_tab'), 'tabs')
|
raise MatchError(payload_get(tab_match_name), 'tabs')
|
||||||
for tab in tabs:
|
for tab in tabs:
|
||||||
windows += list(tab)
|
windows += list(tab)
|
||||||
return windows
|
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:
|
def response_from_kitty(self, boss: Boss, window: Optional[Window], payload_get: PayloadGetType) -> ResponseType:
|
||||||
sid = payload_get('session_id', '')
|
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')
|
pdata: str = payload_get('data')
|
||||||
encoding, _, q = pdata.partition(':')
|
encoding, _, q = pdata.partition(':')
|
||||||
session = ''
|
session = ''
|
||||||
|
|||||||
Reference in New Issue
Block a user