Fix adding of tabs to existing OS Window in create_session

This commit is contained in:
Kovid Goyal 2025-08-14 20:11:43 +05:30
parent f5d305c0df
commit 0789e62b11
No known key found for this signature in database
GPG key ID: 06BC317B515ACE7C
3 changed files with 12 additions and 7 deletions

View file

@ -2993,7 +2993,7 @@ def done2(target_window_id: int, self: Boss) -> None:
return q if isinstance(q, Window) else None
@ac('misc', 'Switch to the specified session, creating it if not already present.')
def goto_session(self, cmdline: list[str]) -> None:
def goto_session(self, *cmdline: str) -> None:
goto_session(self, cmdline)
@ac('tab', 'Interactively select a tab to switch to')

View file

@ -340,7 +340,7 @@ def create_session(boss: BossType, path: str) -> None:
if tm is None:
boss.add_os_window(s)
else:
boss.add_os_window(s, os_window_id=tm.os_window_id)
tm.add_tabs_from_session(s)
else:
boss.add_os_window(s)

View file

@ -989,11 +989,16 @@ def __init__(self, os_window_id: int, args: CLIOptions, wm_class: str, wm_name:
self._active_tab_idx = 0
if startup_session is not None:
for t in startup_session.tabs:
tab = Tab(self, session_tab=t)
tab.created_in_session_name = startup_session.session_name
self._add_tab(tab)
self._set_active_tab(max(0, min(startup_session.active_tab_idx, len(self.tabs) - 1)))
self.add_tabs_from_session(startup_session)
def add_tabs_from_session(self, session: SessionType) -> None:
before = len(self.tabs)
for t in session.tabs:
tab = Tab(self, session_tab=t)
tab.created_in_session_name = session.session_name
self._add_tab(tab)
num_added = len(self.tabs) - before
self._set_active_tab(max(0, min(num_added + session.active_tab_idx, len(self.tabs) - 1)))
@property
def active_tab_idx(self) -> int: