diff options
author | Manos Pitsidianakis <el13635@mail.ntua.gr> | 2020-02-04 01:05:44 +0200 |
---|---|---|
committer | Manos Pitsidianakis <el13635@mail.ntua.gr> | 2020-10-01 18:57:52 +0300 |
commit | b6de185d6b8f911c206a65755d8d21cf58bc4e83 (patch) | |
tree | 1646340340e79bff0f4a7bedf4df4a7e4db41bbf /src | |
parent | 0c9316f0c78e9572a5555932b21f97cf2489e9cb (diff) |
Add freeze/unfreeze with Ctrl+S / Ctrl+Q
Diffstat (limited to 'src')
-rw-r--r-- | src/components/processes.rs | 10 | ||||
-rw-r--r-- | src/main.rs | 8 | ||||
-rw-r--r-- | src/types.rs | 2 |
3 files changed, 20 insertions, 0 deletions
diff --git a/src/components/processes.rs b/src/components/processes.rs index 7d73411..34935be 100644 --- a/src/components/processes.rs +++ b/src/components/processes.rs @@ -1544,6 +1544,16 @@ impl Component for ProcessList { self.force_redraw = true; self.dirty = true; } + UIEvent::Freeze => { + self.freeze = true; + self.force_redraw = true; + self.dirty = true; + } + UIEvent::Unfreeze => { + self.freeze = false; + self.force_redraw = true; + self.dirty = true; + } UIEvent::Input(k) if *k == map["freeze updates"] && (self.mode.input == Inactive) => { self.freeze = !self.freeze; self.force_redraw = true; diff --git a/src/main.rs b/src/main.rs index 779c984..07a5b4a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -232,6 +232,14 @@ fn main() -> Result<(), Error> { state.render(); state.redraw(true); }, + ThreadEvent::Input(Key::Ctrl('s')) => { + state.rcv_event(UIEvent::Freeze); + state.redraw(false); + } + ThreadEvent::Input(Key::Ctrl('q')) => { + state.rcv_event(UIEvent::Unfreeze); + state.redraw(false); + } ThreadEvent::Input(k) => { match k { Key::Char('q') | Key::Char('Q') if state.mode == UIMode::Normal => { diff --git a/src/types.rs b/src/types.rs index a163912..c121ca4 100644 --- a/src/types.rs +++ b/src/types.rs @@ -30,5 +30,7 @@ pub enum ThreadEvent { #[derive(Debug)] pub enum UIEvent { Input(Key), + Freeze, + Unfreeze, Resize, } |