summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Cargo.toml2
-rw-r--r--src/app.rs5
-rw-r--r--src/app/data_collection.rs24
-rw-r--r--src/canvas.rs5
-rw-r--r--src/main.rs4
5 files changed, 21 insertions, 19 deletions
diff --git a/Cargo.toml b/Cargo.toml
index 9f9f61a3..7bdaa371 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "bottom"
-version = "0.2.0"
+version = "0.1.2"
authors = ["Clement Tsang <clementjhtsang@gmail.com>"]
edition = "2018"
repository = "https://github.com/ClementTsang/bottom"
diff --git a/src/app.rs b/src/app.rs
index 684ab9ad..35efc997 100644
--- a/src/app.rs
+++ b/src/app.rs
@@ -16,10 +16,11 @@ pub enum ApplicationPosition {
Process,
}
+#[derive(Debug)]
pub enum ScrollDirection {
- /// UP means scrolling up --- this usually DECREMENTS
+ // UP means scrolling up --- this usually DECREMENTS
UP,
- /// DOWN means scrolling down --- this usually INCREMENTS
+ // DOWN means scrolling down --- this usually INCREMENTS
DOWN,
}
diff --git a/src/app/data_collection.rs b/src/app/data_collection.rs
index cb5e395a..54a76bb4 100644
--- a/src/app/data_collection.rs
+++ b/src/app/data_collection.rs
@@ -95,7 +95,6 @@ impl DataState {
self.sys.refresh_network();
}
- // Filter out stale timed entries
let current_instant = std::time::Instant::now();
// What we want to do: For timed data, if there is an error, just do not add. For other data, just don't update!
@@ -153,12 +152,14 @@ impl DataState {
self.first_run = false;
}
- if current_instant.duration_since(self.last_clean).as_secs() > self.stale_max_seconds {
+ // Filter out stale timed entries
+ let clean_instant = Instant::now();
+ if clean_instant.duration_since(self.last_clean).as_secs() > self.stale_max_seconds {
let stale_list: Vec<_> = self
.prev_pid_stats
.iter()
.filter(|&(_, &v)| {
- current_instant.duration_since(v.1).as_secs() > self.stale_max_seconds
+ clean_instant.duration_since(v.1).as_secs() > self.stale_max_seconds
})
.map(|(k, _)| k.clone())
.collect();
@@ -172,8 +173,7 @@ impl DataState {
.iter()
.cloned()
.filter(|entry| {
- current_instant.duration_since(entry.instant).as_secs()
- <= self.stale_max_seconds
+ clean_instant.duration_since(entry.instant).as_secs() <= self.stale_max_seconds
})
.collect::<Vec<_>>();
@@ -183,8 +183,7 @@ impl DataState {
.iter()
.cloned()
.filter(|entry| {
- current_instant.duration_since(entry.instant).as_secs()
- <= self.stale_max_seconds
+ clean_instant.duration_since(entry.instant).as_secs() <= self.stale_max_seconds
})
.collect::<Vec<_>>();
@@ -194,8 +193,7 @@ impl DataState {
.iter()
.cloned()
.filter(|entry| {
- current_instant.duration_since(entry.instant).as_secs()
- <= self.stale_max_seconds
+ clean_instant.duration_since(entry.instant).as_secs() <= self.stale_max_seconds
})
.collect::<Vec<_>>();
@@ -205,8 +203,7 @@ impl DataState {
.iter()
.cloned()
.filter(|entry| {
- current_instant.duration_since(entry.instant).as_secs()
- <= self.stale_max_seconds
+ clean_instant.duration_since(entry.instant).as_secs() <= self.stale_max_seconds
})
.collect::<Vec<_>>();
@@ -216,12 +213,11 @@ impl DataState {
.iter()
.cloned()
.filter(|entry| {
- current_instant.duration_since(entry.instant).as_secs()
- <= self.stale_max_seconds
+ clean_instant.duration_since(entry.instant).as_secs() <= self.stale_max_seconds
})
.collect::<Vec<_>>();
- self.last_clean = current_instant;
+ self.last_clean = clean_instant;
}
}
}
diff --git a/src/canvas.rs b/src/canvas.rs
index b06b7f2f..c2ca1836 100644
--- a/src/canvas.rs
+++ b/src/canvas.rs
@@ -974,6 +974,11 @@ fn get_start_position(
num_rows: i64, scroll_direction: &app::ScrollDirection, previous_position: &mut i64,
currently_selected_position: &mut i64,
) -> i64 {
+ debug!("Scroll direction: {:?}", scroll_direction);
+ debug!(
+ "Prev: {}, curr: {}",
+ *previous_position, *currently_selected_position
+ );
match scroll_direction {
app::ScrollDirection::DOWN => {
if *currently_selected_position < num_rows {
diff --git a/src/main.rs b/src/main.rs
index 1ff5ba57..6781c675 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -150,14 +150,14 @@ fn main() -> error::Result<()> {
loop {
if let Ok(event) = event::read() {
if let CEvent::Key(key) = event {
- if Instant::now().duration_since(keyboard_timer).as_millis() >= 30 {
+ if Instant::now().duration_since(keyboard_timer).as_millis() >= 20 {
if tx.send(Event::KeyInput(key)).is_err() {
return;
}
keyboard_timer = Instant::now();
}
} else if let CEvent::Mouse(mouse) = event {
- if Instant::now().duration_since(mouse_timer).as_millis() >= 30 {
+ if Instant::now().duration_since(mouse_timer).as_millis() >= 20 {
if tx.send(Event::MouseInput(mouse)).is_err() {
return;
}