Skip to content

Commit ff9183b

Browse files
Tokclaude
andcommitted
preecho: back to bottom + sequencer 3-cell height + bigger anchor cells
Three reversibility-correcting tweaks: - StepSequencer module back to (cols, 3). Gives the preecho row room at the bottom without being clipped by the ScrollArea's vertical fill when lanes grow. - Preecho row moved back BELOW the lane ScrollArea, where it was originally. Pinning it above was my previous attempt at avoiding the clipping; the root issue was module height, not stacking order. - Anchor strip cells 10×14 → 15×21 px (~1.5×). Click targets actually read as toggle boxes now rather than slivers. 489 tests still passing. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 6859190 commit ff9183b

3 files changed

Lines changed: 10 additions & 11 deletions

File tree

src/state/rack.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ impl ModuleKind {
186186
pub fn grid_size(self, grid_cols: u8) -> (u8, u8) {
187187
match self {
188188
// W H
189-
Self::StepSequencer => (grid_cols, 2),
189+
Self::StepSequencer => (grid_cols, 3),
190190
Self::LlmConsole => (grid_cols, 1),
191191
Self::MasterOutput => (grid_cols, 1),
192192
Self::AcidBass => (4, 7),

src/ui/panels/sequencer.rs

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -485,11 +485,6 @@ pub fn draw_sequencer(app: &mut ImpulseApp, ui: &mut egui::Ui) {
485485

486486
let sub_rows = sub_rows_for(seq_steps);
487487

488-
// Pre-echo row BEFORE the lane scroll area so it always has a
489-
// stable position and doesn't get pushed out when the ScrollArea
490-
// expands to fill the remaining space.
491-
super::sequencer_preecho::draw_preecho_row(app, ui);
492-
493488
egui::ScrollArea::vertical().show(ui, |ui| {
494489
// Prefix width computed statically from the fixed 5-widget prefix
495490
// structure (M + S + label + vol + steps, separated by item_spacing).
@@ -940,7 +935,9 @@ pub fn draw_sequencer(app: &mut ImpulseApp, ui: &mut egui::Ui) {
940935
);
941936
});
942937

943-
// Pre-echo row is rendered above the lane ScrollArea (see earlier in
944-
// this function) so it stays pinned to a stable position instead of
945-
// getting pushed past the module bounds when the scroll area grows.
938+
// Pre-echo row lives at the bottom of the panel below the lane
939+
// ScrollArea. The module is sized (cols, 3) specifically so this
940+
// row has room to sit without being clipped by the scroll area's
941+
// greedy vertical fill.
942+
super::sequencer_preecho::draw_preecho_row(app, ui);
946943
}

src/ui/panels/sequencer_preecho.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,10 @@ use crate::sequencer::PreechoConfig;
1616
use crate::ui::{ImpulseApp, theme, widgets};
1717

1818
/// Width of each step cell in the anchor strip.
19-
const ANCHOR_STEP_W: f32 = 10.0;
20-
const ANCHOR_STEP_H: f32 = 14.0;
19+
/// Sized ~1.5× the original 10/14 so the click targets read more
20+
/// like toggle boxes than slivers.
21+
const ANCHOR_STEP_W: f32 = 15.0;
22+
const ANCHOR_STEP_H: f32 = 21.0;
2123

2224
const VOICE_KEYS: &[&str] = &["kit_a", "kit_b", "amen", "bass", "hoover", "an1x"];
2325

0 commit comments

Comments
 (0)