summaryrefslogtreecommitdiffstats
path: root/src/widget.rs
diff options
context:
space:
mode:
authorrabite <rabite@posteo.de>2019-02-28 20:05:11 +0100
committerrabite <rabite@posteo.de>2019-02-28 20:08:36 +0100
commit9338f5e9126ff6bf7b43573eb5d4b1f5a795659b (patch)
treec4fa81731c23fe89cc8961a3f73fff4b04aaabc2 /src/widget.rs
parent06817602a8559e8c214c7f68d804ee1d7d9ffd77 (diff)
fixed minibuffer
Diffstat (limited to 'src/widget.rs')
-rw-r--r--src/widget.rs11
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(())
}