v1.9.26: disable terminal auto-connect on single click, require double-click

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
chrome-storm-c442
2026-03-06 05:09:54 -05:00
parent c21b263b24
commit 7522908404
9 changed files with 204 additions and 7 deletions

View File

@@ -154,7 +154,7 @@ class App(ctk.CTk):
self._paned.pack(fill="both", expand=True)
# Sidebar
self.sidebar = Sidebar(self._paned, self.store, on_select=self._on_server_select, session_pool=self.session_pool)
self.sidebar = Sidebar(self._paned, self.store, on_select=self._on_server_select, on_double_click=self._on_server_connect, session_pool=self.session_pool)
self._paned.add(self.sidebar, minsize=180, width=self.store._sidebar_width)
self.sidebar.add_callback = self._add_server
self.sidebar.edit_callback = self._edit_server
@@ -307,6 +307,12 @@ class App(ctk.CTk):
# Update session indicators after a short delay (connection is async)
self.after(1500, self.sidebar.update_session_indicators)
def _on_server_connect(self, alias: str):
"""Double-click: connect interactive tabs (terminal, files, powershell)."""
for key, widget in self._tab_instances.items():
if hasattr(widget, "connect"):
widget.connect()
def _add_server(self):
dialog = ServerDialog(self, self.store)
self.wait_window(dialog)
@@ -356,6 +362,10 @@ class App(ctk.CTk):
self.tabview.set(_tab_label(tab_key))
except Exception:
pass
# Connect the target tab if it supports explicit connection
widget = self._tab_instances.get(tab_key)
if widget and hasattr(widget, "connect"):
widget.connect()
def _context_check_status(self, alias: str):
"""Context menu: check single server status in background."""