aboutsummaryrefslogtreecommitdiff
path: root/src/app
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-04-06 16:00:34 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-04-06 16:00:34 +0300
commitfdea0bbbf606fcd8cfec1613a3aaf610bfb9b3cf (patch)
treed9e02845dc8855d26e9d5a1a376f213b02aac6db /src/app
parent24572604fbc20910e7cdb0b2767dc1970d8e1921 (diff)
fix(ui): add sidebar section headers and align workspace drag slots
Diffstat (limited to 'src/app')
-rw-r--r--src/app/input.rs27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/app/input.rs b/src/app/input.rs
index fdb668c6..da38f1d7 100644
--- a/src/app/input.rs
+++ b/src/app/input.rs
@@ -3361,7 +3361,32 @@ mod tests {
crate::ui::compute_view(&mut app.state, Rect::new(0, 0, 106, 20));
assert_eq!(app.state.workspace_drop_index_at_row(0), Some(0));
- assert_eq!(app.state.workspace_drop_index_at_row(1), Some(1));
+ assert_eq!(app.state.workspace_drop_index_at_row(1), Some(0));
+ assert_eq!(app.state.workspace_drop_index_at_row(2), Some(0));
+ assert_eq!(app.state.workspace_drop_index_at_row(3), Some(1));
+ }
+
+ #[test]
+ fn bottom_drop_slot_stays_below_last_workspace_not_footer() {
+ let mut app = app_for_mouse_test();
+ app.state.workspaces = vec![
+ Workspace::test_new("a"),
+ Workspace::test_new("b"),
+ Workspace::test_new("c"),
+ ];
+ crate::ui::compute_view(&mut app.state, Rect::new(0, 0, 106, 20));
+
+ let cards = &app.state.view.workspace_card_areas;
+ let bottom_slot = crate::ui::workspace_drop_indicator_row(
+ cards,
+ app.state.workspace_list_rect(),
+ cards.len(),
+ )
+ .unwrap();
+
+ let last = cards.last().unwrap().rect;
+ assert_eq!(bottom_slot, last.y + last.height);
+ assert!(bottom_slot < app.state.sidebar_footer_rect().y.saturating_sub(1));
}
#[test]