Fix adding of tabs to existing OS Window in create_session
This commit is contained in:
parent
f5d305c0df
commit
0789e62b11
3 changed files with 12 additions and 7 deletions
|
|
@ -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')
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
Loading…
Reference in a new issue