From b50417e1e1bdeecd32b52acb38c7c26f8fa8216d Mon Sep 17 00:00:00 2001 From: adem482p Date: Sat, 3 Oct 2026 16:24:04 +0100 Subject: [PATCH] Fix PSK cursor centering to ride last character Fixes #163 --- src/mode/station/auth/psk.rs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/mode/station/auth/psk.rs b/src/mode/station/auth/psk.rs index 30ca9a2..96c8424 100644 --- a/src/mode/station/auth/psk.rs +++ b/src/mode/station/auth/psk.rs @@ -146,18 +146,19 @@ impl Psk { frame.render_widget(text, text_area); frame.render_widget(passkey, passkey_area); - let inner_width = passkey_area.width.saturating_sub(2) as usize; - let pad_left = if inner_width > pass_len { - inner_width.saturating_sub(pass_len) / 2 + let pad_left = (passkey_area.width as usize / 2).saturating_sub(pass_len / 2); + + let visual_cursor = self.passphrase.visual_cursor().min(pass_len); + + let cursor_index = if pass_len > 0 { + visual_cursor.min(pass_len - 1) } else { 0 }; - let visual_cursor = self.passphrase.visual_cursor().min(pass_len); - - let x_in_inner = pad_left + visual_cursor; + let x_in_inner = pad_left + cursor_index; - let cursor_x = passkey_area.x + 1 + x_in_inner as u16; + let cursor_x = passkey_area.x + x_in_inner as u16; frame.set_cursor_position((cursor_x, passkey_area.y)); frame.render_widget(show_password_icon, show_password_area);