startupcheck signal seems to be causing redraws

closes #33
memfd
Manos Pitsidianakis 6 years ago
parent 832d1243de
commit f033463db9
No known key found for this signature in database
GPG Key ID: 73627C2F690DF710

@ -122,10 +122,10 @@ impl Account {
}; };
} }
pub fn status(&mut self, index: usize) -> result::Result<(), usize> { pub fn status(&mut self, index: usize) -> result::Result<bool, usize> {
match self.workers[index].as_mut() { match self.workers[index].as_mut() {
None => { None => {
return Ok(()); return Ok(false);
} }
Some(ref mut w) => match w.poll() { Some(ref mut w) => match w.poll() {
Ok(AsyncStatus::NoUpdate) => { Ok(AsyncStatus::NoUpdate) => {
@ -144,7 +144,7 @@ impl Account {
let m = self.workers[index].take().unwrap().extract(); let m = self.workers[index].take().unwrap().extract();
self.load_mailbox(index, m); self.load_mailbox(index, m);
self.workers[index] = None; self.workers[index] = None;
Ok(()) Ok(true)
} }
} }

@ -191,11 +191,15 @@ fn main() {
} }
ThreadEvent::UIEvent(UIEventType::StartupCheck) => { ThreadEvent::UIEvent(UIEventType::StartupCheck) => {
let mut flag = false; let mut flag = false;
let mut render_flag = false;
for account in &mut state.context.accounts { for account in &mut state.context.accounts {
let len = account.len(); let len = account.len();
for i in 0..len { for i in 0..len {
match account.status(i) { match account.status(i) {
Ok(()) => { }, Ok(true) => {
render_flag = true;
},
Ok(false) => {},
Err(_) => { Err(_) => {
flag |= true; flag |= true;
} }
@ -205,7 +209,9 @@ fn main() {
if !flag { if !flag {
state.finish_startup(); state.finish_startup();
} }
state.render(); if render_flag {
state.render();
}
} }
ThreadEvent::UIEvent(e) => { ThreadEvent::UIEvent(e) => {
state.rcv_event(UIEvent { id: 0, event_type: e}); state.rcv_event(UIEvent { id: 0, event_type: e});

@ -86,7 +86,7 @@ impl CompactMailListing {
// //
loop { loop {
// TODO: Show progress visually // TODO: Show progress visually
if let Ok(()) = context.accounts[self.cursor_pos.0].status(self.cursor_pos.1) { if let Ok(_) = context.accounts[self.cursor_pos.0].status(self.cursor_pos.1) {
break; break;
} }
} }

@ -106,7 +106,7 @@ impl MailListing {
// //
loop { loop {
// TODO: Show progress visually // TODO: Show progress visually
if let Ok(()) = context.accounts[self.cursor_pos.0].status(self.cursor_pos.1) { if let Ok(_) = context.accounts[self.cursor_pos.0].status(self.cursor_pos.1) {
break; break;
} }
} }

@ -136,7 +136,7 @@ impl AccountMenu {
) -> () { ) -> () {
let len = s.len(); let len = s.len();
match context.accounts[index].status(root) { match context.accounts[index].status(root) {
Ok(()) => {} Ok(_) => {}
Err(_) => { Err(_) => {
return; return;
// TODO: Show progress visually // TODO: Show progress visually

@ -474,7 +474,7 @@ impl Component for StatusBar {
match &event.event_type { match &event.event_type {
UIEventType::RefreshMailbox((ref idx_a, ref idx_f)) => { UIEventType::RefreshMailbox((ref idx_a, ref idx_f)) => {
match context.accounts[*idx_a].status(*idx_f) { match context.accounts[*idx_a].status(*idx_f) {
Ok(()) => {} Ok(_) => {}
Err(_) => { Err(_) => {
return; return;
} }

Loading…
Cancel
Save