notedeck

One damus client to rule them all
git clone git://jb55.com/notedeck
Log | Files | Refs | README | LICENSE

commit 029b224834e7cb463dd3cc70611b26484dac8943
parent ffe7d5cc0aacbb070924ad9658c78c628f59dd9f
Author: William Casarin <jb55@jb55.com>
Date:   Tue,  6 Jan 2026 15:25:06 -0800

search: fix repeated focus on input

Changelog-Fixed: Fixed continuous search box autofocus
Fixes: 35a37245677e ("recent searches, autofocus on back / fwd nav")
Signed-off-by: William Casarin <jb55@jb55.com>

Diffstat:
Mcrates/notedeck_columns/src/nav.rs | 1+
Mcrates/notedeck_columns/src/ui/search/mod.rs | 7+++----
2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/crates/notedeck_columns/src/nav.rs b/crates/notedeck_columns/src/nav.rs @@ -851,6 +851,7 @@ fn render_nav_body( // says we were navigating. This means that navigating has // stopped. Let's make sure to focus the input field search_buffer.focus_state = FocusState::ShouldRequestFocus; + tracing::debug!("requesting search focus"); } SearchView::new(&txn, app.note_options, search_buffer, &mut note_context) diff --git a/crates/notedeck_columns/src/ui/search/mod.rs b/crates/notedeck_columns/src/ui/search/mod.rs @@ -70,7 +70,7 @@ impl<'a, 'd> SearchView<'a, 'd> { self.note_context.clipboard, ); - search_resp.process(self.query); + search_resp.process_search_response(self.query); let keyboard_resp = handle_keyboard_navigation( ui, @@ -444,11 +444,10 @@ struct SearchResponse { } impl SearchResponse { - fn process(self, state: &mut SearchQueryState) { + fn process_search_response(self, state: &mut SearchQueryState) { if self.requested_focus { state.focus_state = FocusState::RequestedFocus; - } else if state.focus_state == FocusState::RequestedFocus && !self.input_changed { - state.focus_state = FocusState::Navigating; + tracing::debug!("search response: requesting focus"); } if self.input_changed {