diff --git a/crates/tui/src/config.rs b/crates/tui/src/config.rs index 883cf8ed..060385b6 100644 --- a/crates/tui/src/config.rs +++ b/crates/tui/src/config.rs @@ -500,9 +500,9 @@ pub struct TuiConfig { /// - Unset (default) — fall back to the `[notifications]` defaults. pub notification_condition: Option, /// When `true`, plain Up/Down on an empty composer scroll the - /// transcript instead of recalling input history. Useful for - /// terminals that map trackpad gestures to arrow keys. Default: - /// `false` (plain arrows always navigate input history, #1117). + /// transcript instead of recalling input history. Useful for + /// terminals that map mouse-wheel gestures to arrow keys. Default: + /// `true` only when mouse capture is off; otherwise `false`. #[serde(default)] pub composer_arrows_scroll: Option, } diff --git a/crates/tui/src/tui/app.rs b/crates/tui/src/tui/app.rs index 0969c8f8..bcc49979 100644 --- a/crates/tui/src/tui/app.rs +++ b/crates/tui/src/tui/app.rs @@ -1561,8 +1561,8 @@ fn default_composer_arrows_scroll(use_mouse_capture: bool) -> bool { default_composer_arrows_scroll_for_platform(use_mouse_capture, cfg!(windows)) } -fn default_composer_arrows_scroll_for_platform(use_mouse_capture: bool, is_windows: bool) -> bool { - is_windows || !use_mouse_capture +fn default_composer_arrows_scroll_for_platform(use_mouse_capture: bool, _is_windows: bool) -> bool { + !use_mouse_capture } impl App { @@ -4735,8 +4735,13 @@ mod tests { } #[test] - fn composer_arrows_scroll_default_is_true_on_windows_even_with_mouse_capture() { - assert!(default_composer_arrows_scroll_for_platform(true, true)); + fn composer_arrows_scroll_default_is_false_with_mouse_capture_on_windows() { + assert!(!default_composer_arrows_scroll_for_platform(true, true)); + } + + #[test] + fn composer_arrows_scroll_default_is_true_without_mouse_capture_on_windows() { + assert!(default_composer_arrows_scroll_for_platform(false, true)); } #[test] diff --git a/crates/tui/src/tui/ui/tests.rs b/crates/tui/src/tui/ui/tests.rs index 2a254c67..ed3dfabc 100644 --- a/crates/tui/src/tui/ui/tests.rs +++ b/crates/tui/src/tui/ui/tests.rs @@ -5972,16 +5972,15 @@ fn composer_arrows_scroll_defaults_true_without_mouse_capture() { } #[test] -fn composer_arrows_scroll_defaults_follow_platform_with_mouse_capture() { +fn composer_arrows_scroll_defaults_false_with_mouse_capture() { let options = TuiOptions { use_mouse_capture: true, ..create_test_options() }; let app = App::new(options, &Config::default()); - assert_eq!( - app.composer_arrows_scroll, - cfg!(windows), - "arrows-scroll should default to true on Windows and false on other platforms when mouse capture is on" + assert!( + !app.composer_arrows_scroll, + "arrows-scroll must default to false when mouse capture is on" ); }