fix bug in paused screen
This commit is contained in:
parent
5c6405d7fb
commit
f54ac44db3
1 changed files with 18 additions and 5 deletions
23
src/timer.rs
23
src/timer.rs
|
@ -1,11 +1,13 @@
|
||||||
use egui::{Color32, Direction, FontId, Layout, RichText, Ui};
|
|
||||||
use egui_extras::{Size, StripBuilder};
|
|
||||||
use std::time::{Duration, Instant};
|
use std::time::{Duration, Instant};
|
||||||
|
|
||||||
use crate::{cli::Cli, util::*};
|
|
||||||
use clap::Parser;
|
use clap::Parser;
|
||||||
|
|
||||||
use eframe::{App, CreationContext};
|
use eframe::{App, CreationContext};
|
||||||
|
use egui::{Color32, Direction, FontId, Layout, RichText, Ui};
|
||||||
|
use egui_extras::{Size, StripBuilder};
|
||||||
|
|
||||||
|
use crate::{cli::Cli, util::*};
|
||||||
|
|
||||||
|
const MIN_REPAINT: Duration = Duration::from_millis(100);
|
||||||
|
|
||||||
#[derive(Debug, Clone, Copy)]
|
#[derive(Debug, Clone, Copy)]
|
||||||
pub enum CountDirection {
|
pub enum CountDirection {
|
||||||
|
@ -63,8 +65,14 @@ impl App for Timer {
|
||||||
|
|
||||||
match self.state {
|
match self.state {
|
||||||
TimerState::Unstarted => self.unstarted(ui, vsize),
|
TimerState::Unstarted => self.unstarted(ui, vsize),
|
||||||
TimerState::Running(_) => self.running(ui, vsize),
|
TimerState::Running(cs) => {
|
||||||
|
if (Instant::now() - cs.updated) > MIN_REPAINT {
|
||||||
|
ctx.request_repaint();
|
||||||
|
}
|
||||||
|
self.running(ui, vsize);
|
||||||
|
}
|
||||||
TimerState::Paused(_) => self.paused(ui, vsize),
|
TimerState::Paused(_) => self.paused(ui, vsize),
|
||||||
|
|
||||||
TimerState::Finished => self.finished(ui, vsize),
|
TimerState::Finished => self.finished(ui, vsize),
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -251,6 +259,11 @@ impl Timer {
|
||||||
Color32::DARK_GRAY
|
Color32::DARK_GRAY
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
// if we're counting up, do the right thing
|
||||||
|
let remaining = match self.direction {
|
||||||
|
CountDirection::Down => remaining,
|
||||||
|
CountDirection::Up => self.duration - remaining,
|
||||||
|
};
|
||||||
display_digits(&mut strip, remaining, color, vsize * 0.7);
|
display_digits(&mut strip, remaining, color, vsize * 0.7);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue