diff --git a/crates/tek_sequencer/src/sequencer_tui.rs b/crates/tek_sequencer/src/sequencer_tui.rs index 5af3c438..d8732fc8 100644 --- a/crates/tek_sequencer/src/sequencer_tui.rs +++ b/crates/tek_sequencer/src/sequencer_tui.rs @@ -48,9 +48,9 @@ impl Content for PhrasePool { (i, phrase) in self.phrases.iter().enumerate() => Layers::new(|add|{ let Phrase { ref name, color, .. } = *phrase.read().unwrap(); let row1 = format!(" {i}"); - let row2 = if let Some(PhrasePoolMode::Rename(phrase, ref new_name)) = self.mode { + let row2 = if let Some(PhrasePoolMode::Rename(phrase, _)) = self.mode { if self.focused && i == phrase { - format!(" {new_name}▄") + format!(" {}▄", name.read().unwrap()) } else { format!(" {}", name.read().unwrap()) } @@ -85,13 +85,21 @@ impl Content for PhrasePool { impl Handle for PhrasePool { fn handle (&mut self, from: &TuiInput) -> Perhaps { match self.mode { - Some(PhrasePoolMode::Rename(phrase, ref mut new_name)) => match from.event() { - key!(KeyCode::Backspace) => { new_name.pop(); }, - key!(KeyCode::Char(c)) => { new_name.push(*c); }, - key!(Shift-KeyCode::Char(c)) => { new_name.push(*c); }, - key!(KeyCode::Esc) => { self.mode = None; }, + Some(PhrasePoolMode::Rename(phrase, ref mut old_name)) => match from.event() { + key!(KeyCode::Backspace) => { + self.phrases[phrase].read().unwrap().name.write().unwrap().pop(); + }, + key!(KeyCode::Char(c)) => { + self.phrases[phrase].read().unwrap().name.write().unwrap().push(*c); + }, + key!(Shift-KeyCode::Char(c)) => { + self.phrases[phrase].read().unwrap().name.write().unwrap().push(*c); + }, + key!(KeyCode::Esc) => { + *self.phrases[phrase].read().unwrap().name.write().unwrap() = old_name.clone(); + self.mode = None; + }, key!(KeyCode::Enter) => { - *self.phrases[phrase].read().unwrap().name.write().unwrap() = new_name.clone(); self.mode = None; }, _ => return Ok(None)