diff options
author | rabite <rabite@posteo.de> | 2019-02-28 20:05:11 +0100 |
---|---|---|
committer | rabite <rabite@posteo.de> | 2019-02-28 20:08:36 +0100 |
commit | 9338f5e9126ff6bf7b43573eb5d4b1f5a795659b (patch) | |
tree | c4fa81731c23fe89cc8961a3f73fff4b04aaabc2 /src/widget.rs | |
parent | 06817602a8559e8c214c7f68d804ee1d7d9ffd77 (diff) |
fixed minibuffer
Diffstat (limited to 'src/widget.rs')
-rw-r--r-- | src/widget.rs | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/src/widget.rs b/src/widget.rs index 353d198..2e47b28 100644 --- a/src/widget.rs +++ b/src/widget.rs @@ -20,6 +20,7 @@ pub trait Widget { fn render_footer(&self) -> String { "".into() } fn refresh(&mut self); fn get_drawlist(&self) -> String; + fn after_draw(&self) -> HResult<()> { Ok(()) } fn on_event(&mut self, event: Event) -> HResult<()> { @@ -134,23 +135,19 @@ pub trait Widget { fn popup(&mut self) -> HResult<()> { self.run_widget(); - send_event(Events::ExclusiveEvent(None)); + send_event(Events::ExclusiveEvent(None))?; Ok(()) } fn run_widget(&mut self) -> HResult<()> { let (tx_event, rx_event) = channel(); send_event(Events::ExclusiveEvent(Some(tx_event)))?; - dbg!("sent exclusive request"); self.clear()?; self.refresh(); self.draw()?; - dbg!("entering loop"); - for event in rx_event.iter() { - dbg!(&event); match event { Events::InputEvent(input) => { if let Err(HError::PopupFinnished) = self.on_event(input) { @@ -162,8 +159,8 @@ pub trait Widget { } _ => {} } - - self.draw()?; + self.draw(); + self.after_draw(); } Ok(()) } |