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

@@ -34,10 +34,11 @@ _CONTEXT_ACTIONS = {
class Sidebar(ctk.CTkFrame):
def __init__(self, master, store, on_select=None, session_pool=None):
def __init__(self, master, store, on_select=None, on_double_click=None, session_pool=None):
super().__init__(master, width=250, corner_radius=0)
self.store = store
self.on_select = on_select
self.on_double_click = on_double_click
self.session_pool = session_pool
self._selected_alias: str | None = None
self._server_frames: dict[str, ctk.CTkFrame] = {}
@@ -272,6 +273,7 @@ class Sidebar(ctk.CTkFrame):
# Click handlers
for widget in [frame, info, name_label, detail_label, badge, type_badge, session_ind]:
widget.bind("<Button-1>", lambda e, a=alias: self._select(a))
widget.bind("<Double-Button-1>", lambda e, a=alias: self._on_double_click(a))
widget.bind("<Button-3>", lambda e, a=alias: self._show_context_menu(e, a))
self._server_frames[alias] = frame
@@ -371,6 +373,11 @@ class Sidebar(ctk.CTkFrame):
if self.on_select:
self.on_select(alias)
def _on_double_click(self, alias: str):
self._select(alias)
if self.on_double_click:
self.on_double_click(alias)
def _highlight_selected(self):
for alias, frame in self._server_frames.items():
if alias == self._selected_alias: