summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManos Pitsidianakis <el13635@mail.ntua.gr>2020-02-04 01:05:44 +0200
committerManos Pitsidianakis <el13635@mail.ntua.gr>2020-10-01 18:57:52 +0300
commitb6de185d6b8f911c206a65755d8d21cf58bc4e83 (patch)
tree1646340340e79bff0f4a7bedf4df4a7e4db41bbf
parent0c9316f0c78e9572a5555932b21f97cf2489e9cb (diff)
Add freeze/unfreeze with Ctrl+S / Ctrl+Q
-rw-r--r--src/components/processes.rs10
-rw-r--r--src/main.rs8
-rw-r--r--src/types.rs2
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,
}