From 29f09a255638250451c2130b467ea6dc06fe5447 Mon Sep 17 00:00:00 2001 From: unspeaker Date: Mon, 27 Jan 2025 21:37:24 +0100 Subject: [PATCH] fix weird alignments in selections --- tek/src/keys.rs | 4 ++-- tek/src/view_scene.rs | 13 +++++++------ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/tek/src/keys.rs b/tek/src/keys.rs index d039f62d..f7e9a1df 100644 --- a/tek/src/keys.rs +++ b/tek/src/keys.rs @@ -241,7 +241,7 @@ atom_command!(TrackCommand: |app: Tek| { command!(|self: TrackCommand, app: Tek|match self { Self::Add => { use Selection::*; - let index = app.track_add(None, None, &[], &[])?.0 + 1; + let index = app.track_add(None, None, &[], &[])?.0; app.selected = match app.selected { Track(t) => Track(index), Clip(t, s) => Clip(index, s), @@ -296,7 +296,7 @@ atom_command!(SceneCommand: |app: Tek| { command!(|self: SceneCommand, app: Tek|match self { Self::Add => { use Selection::*; - let index = app.scene_add(None, None)?.0 + 1; + let index = app.scene_add(None, None)?.0; app.selected = match app.selected { Scene(s) => Scene(index), Clip(t, s) => Clip(t, index), diff --git a/tek/src/view_scene.rs b/tek/src/view_scene.rs index dc043db8..680b62ab 100644 --- a/tek/src/view_scene.rs +++ b/tek/src/view_scene.rs @@ -18,6 +18,7 @@ impl Tek { data})} pub fn view_scenes (&self) -> impl Content + use<'_> { let w_full = self.w(); + let w = self.w_tracks_area(); let h = self.h_tracks_area(); let editing = self.is_editing(); let selected_track = self.selected().track(); @@ -29,8 +30,8 @@ impl Tek { let scene_clips = self.per_track(move|t, track|Map::new( move||self.scenes_with_track_colors(editing, h, t), move|(s, scene, y1, y2, prev): SceneColor, _|self.view_scene_clip( - (1 + y2 - y1) as u16, y1 as u16, - scene, prev, s, t, editing, selected_track == Some(t+1), selected_scene))); + w, (1 + y2 - y1) as u16, y1 as u16, + scene, prev, s, t, editing, selected_track == Some(t), selected_scene))); Tui::bg(Black, self.row_top(self.w_tracks_area(), h, scene_names, scene_clips, ())) } fn scenes_with_colors (&self, editing: bool, h: u16) -> impl ScenesColors<'_> { self.scenes_sizes(editing, 2, 15).map_while( @@ -49,7 +50,7 @@ impl Tek { let fg = scene.color.lightest.rgb; let name = Some(scene.name.clone()); let cell = self.view_scene_cell(true, s, &bg, prev, name, " ⯈ ", fg); - Fixed::x(width, map_south(offset, height, Fixed::y(height, cell))) } + map_south(offset, height, Fixed::y(height, cell)) } fn scenes_with_track_colors (&self, editing: bool, h: u16, t: usize) -> impl ScenesColors<'_> { self.scenes_sizes(editing, 2, 15).map_while( move|(s, scene, y1, y2)|if y2 as u16 > h { @@ -62,7 +63,7 @@ impl Tek { .unwrap_or(ItemPalette::G[32])) })) }) } fn view_scene_clip ( - &self, height: u16, offset: u16, + &self, width: u16, height: u16, offset: u16, scene: &Scene, prev: Option, s: usize, t: usize, editing: bool, same_track: bool, selected_scene: Option ) -> impl Content + use<'_> { @@ -87,8 +88,8 @@ impl Tek { fg: Color, ) -> impl Content + use<'a> { let selected_scene = self.selected().scene(); - let selected = same_track && selected_scene == Some(scene+1); - let neighbor = same_track && selected_scene == Some(scene); + let selected = same_track && selected_scene == Some(scene); + let neighbor = same_track && scene > 0 && selected_scene == Some(scene - 1); let is_last = scene == self.scenes.len().saturating_sub(1); let colors = Self::colors(color, prev, selected, neighbor, is_last); let content = Fill::x(Align::w(Tui::fg(fg, Tui::bold(true, Bsp::e(icon, name)))));