diff options
Diffstat (limited to 'ui/src/components/utilities.rs')
-rw-r--r-- | ui/src/components/utilities.rs | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/ui/src/components/utilities.rs b/ui/src/components/utilities.rs index e41d8826..97a0b623 100644 --- a/ui/src/components/utilities.rs +++ b/ui/src/components/utilities.rs @@ -453,10 +453,12 @@ impl Component for StatusBar { match m { UIMode::Normal => { self.height = 1; - context.replies.push_back(UIEvent { - id: 0, - event_type: UIEventType::Command(self.ex_buffer.clone()), - }); + if !self.ex_buffer.is_empty() { + context.replies.push_back(UIEvent { + id: 0, + event_type: UIEventType::Command(self.ex_buffer.clone()), + }); + } self.ex_buffer.clear() } UIMode::Execute => { @@ -469,6 +471,14 @@ impl Component for StatusBar { self.dirty = true; self.ex_buffer.push(*c); } + UIEventType::ExInput(Key::Ctrl('u')) => { + self.dirty = true; + self.ex_buffer.clear(); + } + UIEventType::ExInput(Key::Backspace) | UIEventType::ExInput(Key::Ctrl('h')) => { + self.dirty = true; + self.ex_buffer.pop(); + } UIEventType::Resize => { self.dirty = true; } |