Skip to content

Commit d05cfdc

Browse files
eatnugclaude
andcommitted
Bump version to v0.37.18
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent c510b11 commit d05cfdc

6 files changed

Lines changed: 41 additions & 19 deletions

File tree

Cargo.lock

Lines changed: 9 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ resolver = "2"
1414

1515
[workspace.package]
1616
edition = "2021"
17-
version = "0.37.17"
17+
version = "0.37.18"
1818
license = "MIT"
1919
repository = "https://github.com/eatnug/tide"
2020
authors = ["eatnug"]

crates/tide-app/src/action/mod.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff 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 {

crates/tide-app/src/event_handler/click.rs

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff 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);

crates/tide-app/src/event_handler/mouse.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ use tide_platform::WindowProxy;
66
use crate::drag_drop::PaneDragState;
77
use crate::pane::{PaneKind, Selection};
88
use crate::theme::*;
9-
use crate::ui_state::FocusArea;
109
use crate::App;
1110

1211
impl 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();

crates/tide-app/src/layout_compute.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff 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(

0 commit comments

Comments
 (0)