File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -14,7 +14,7 @@ resolver = "2"
1414
1515[workspace .package ]
1616edition = " 2021"
17- version = " 0.37.17 "
17+ version = " 0.37.18 "
1818license = " MIT"
1919repository = " https://github.com/eatnug/tide"
2020authors = [" eatnug" ]
Original file line number Diff line number Diff line change @@ -362,6 +362,14 @@ impl App {
362362 if let Some ( InputEvent :: MouseClick { position, .. } ) = event {
363363 self . focus_terminal ( id) ;
364364
365+ // Clicking webview content unfocuses the URL bar
366+ if let Some ( PaneKind :: Browser ( bp) ) = self . panes . get_mut ( & id) {
367+ if bp. url_input_focused {
368+ bp. url_input_focused = false ;
369+ self . cache . invalidate_chrome ( ) ;
370+ }
371+ }
372+
365373 // Ctrl+Click / Cmd+Click on terminal -> try to open URL or file at click position
366374 let mods = self . modifiers ;
367375 if mods. ctrl || mods. meta {
Original file line number Diff line number Diff line change @@ -352,14 +352,30 @@ impl App {
352352 HeaderHitAction :: Maximize => {
353353 // Toggle zoom for this pane
354354 self . focus_terminal ( zone. pane_id ) ;
355+ if self . is_pane_in_dock ( zone. pane_id ) {
356+ // Dock pane: toggle dock_zoomed on the owning terminal
357+ if let Some ( tid) = self . terminal_owning ( zone. pane_id ) {
358+ if let Some ( PaneKind :: Terminal ( tp) ) = self . panes . get_mut ( & tid) {
359+ tp. dock_zoomed = !tp. dock_zoomed ;
360+ }
361+ }
362+ } else {
363+ // Stage pane: toggle zoomed_pane
364+ if self . zoomed_pane == Some ( zone. pane_id ) {
365+ self . zoomed_pane = None ;
366+ } else {
367+ self . zoomed_pane = Some ( zone. pane_id ) ;
368+ }
369+ }
355370 self . cache . invalidate_chrome ( ) ;
371+ self . cache . pane_generations . clear ( ) ;
356372 self . compute_layout ( ) ;
357373 self . cache . needs_redraw = true ;
358374 return true ;
359375 }
360376 HeaderHitAction :: DockTab ( target_pane_id) => {
361377 // Switch to the clicked tab in the Dock TabGroup
362- if let Some ( tid) = self . focused_terminal_id ( ) {
378+ if let Some ( tid) = self . terminal_owning ( target_pane_id ) {
363379 if let Some ( PaneKind :: Terminal ( tp) ) = self . panes . get_mut ( & tid) {
364380 tp. dock_focused = Some ( target_pane_id) ;
365381 tp. dock_layout . set_active_tab ( target_pane_id) ;
Original file line number Diff line number Diff line change @@ -6,7 +6,6 @@ use tide_platform::WindowProxy;
66use crate :: drag_drop:: PaneDragState ;
77use crate :: pane:: { PaneKind , Selection } ;
88use crate :: theme:: * ;
9- use crate :: ui_state:: FocusArea ;
109use crate :: App ;
1110
1211impl App {
@@ -526,11 +525,10 @@ impl App {
526525 return ;
527526 }
528527 PaneDragState :: PendingDrag { source_pane, .. } => {
529- // Focus the clicked pane
530- self . focused = Some ( source_pane) ;
531- self . router . set_focused ( source_pane) ;
532- self . focus_area = FocusArea :: Stage ;
533- if self . zoomed_pane . is_some ( ) {
528+ // Focus the clicked pane (handles Stage vs Dock correctly)
529+ self . focus_terminal ( source_pane) ;
530+ // Only update zoomed_pane for stage panes
531+ if self . zoomed_pane . is_some ( ) && !self . is_pane_in_dock ( source_pane) {
534532 self . zoomed_pane = Some ( source_pane) ;
535533 }
536534 self . cache . invalidate_chrome ( ) ;
Original file line number Diff line number Diff line change @@ -466,9 +466,9 @@ impl App {
466466 }
467467
468468 // Zoom: if a pane is zoomed, override rects so only that pane is shown fullscreen.
469- // Clear zoom if the zoomed pane no longer exists.
469+ // Clear zoom if the zoomed pane no longer exists or is a dock pane .
470470 if let Some ( zp) = self . zoomed_pane {
471- if !self . panes . contains_key ( & zp) {
471+ if !self . panes . contains_key ( & zp) || self . is_pane_in_dock ( zp ) {
472472 self . zoomed_pane = None ;
473473 } else {
474474 rects = vec ! [ ( zp, Rect :: new(
You can’t perform that action at this time.
0 commit comments