feat: full password editing with cursor navigation

- Add arrow key support (Left/Right/Home/End) for cursor movement
- Add Delete key to remove character at cursor position
- Render cursor between password dots with visual indicator
- Modularize render.rs into separate modules (indicator, media_bar, status_bar, feedback)
- Add cubic ease-in-out for fade-in animation
- Optimize media_rects to use &'static str instead of String allocations
This commit is contained in:
2026-04-11 15:43:11 +02:00
parent 05cf0c1d7e
commit 016038aca0
10 changed files with 1263 additions and 1309 deletions
+1 -2
View File
@@ -647,7 +647,7 @@ impl PointerHandler for WaylandLock {
if surface.matches_surface(&event.surface) {
for (action, rx, ry, rw, rh) in &surface.renderer.media_rects {
if x >= *rx && x <= rx + rw && y >= *ry && y <= ry + rh {
match action.as_str() {
match *action {
"play_pause" => self.system_manager.media_play_pause(),
"stop" => self.system_manager.media_stop(),
"next" => self.system_manager.media_next(),
@@ -823,7 +823,6 @@ fn main() -> Result<(), Box<dyn Error>> {
}
}
let mut status = state.system_manager.get_status();
status.keyboard_layout = Some(state.current_layout.to_string());