summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClement Tsang <34804052+ClementTsang@users.noreply.github.com>2020-08-15 23:56:54 -0700
committerGitHub <noreply@github.com>2020-08-16 02:56:54 -0400
commitd211c6474cfebee3b1cf7ba273e57120a1edd5b8 (patch)
treefda34667faba00e999820573e0928d1694faab46
parentf3897f0538f90c682b96bc340c3c05e80be10b2d (diff)
bug: Fix bug caused by hitting enter w/ a failed dd
This would cause the dd fields to get stuck due to never resetting.
-rw-r--r--CHANGELOG.md2
-rw-r--r--src/app.rs16
2 files changed, 13 insertions, 5 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f1ae3685..534c8a9a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -29,6 +29,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- [183](https://github.com/ClementTsang/bottom/pull/183): Fixed bug in basic mode where the battery widget was placed incorrectly.
+- [186](https://github.com/ClementTsang/bottom/pull/186): Fixed a bug caused by hitting `Enter` when a process kill fails, breaking future process kills.
+
## [0.4.5] - 2020-07-08
- No changes here, just an uptick for Crates.io using the wrong Cargo.lock.
diff --git a/src/app.rs b/src/app.rs
index c884013f..1ea648fe 100644
--- a/src/app.rs
+++ b/src/app.rs
@@ -130,6 +130,13 @@ impl App {
self.data_collection.reset();
}
+ fn close_dd(&mut self) {
+ self.delete_dialog_state.is_showing_dd = false;
+ self.delete_dialog_state.is_on_yes = false;
+ self.to_delete_process_list = None;
+ self.dd_err = None;
+ }
+
pub fn on_esc(&mut self) {
self.reset_multi_tap_keys();
if self.is_in_dialog() {
@@ -137,10 +144,7 @@ impl App {
self.help_dialog_state.is_showing_help = false;
self.help_dialog_state.scroll_state.current_scroll_index = 0;
} else {
- self.delete_dialog_state.is_showing_dd = false;
- self.delete_dialog_state.is_on_yes = false;
- self.to_delete_process_list = None;
- self.dd_err = None;
+ self.close_dd();
}
self.is_force_redraw = true;
@@ -390,7 +394,9 @@ impl App {
/// One of two functions allowed to run while in a dialog...
pub fn on_enter(&mut self) {
if self.delete_dialog_state.is_showing_dd {
- if self.delete_dialog_state.is_on_yes {
+ if self.dd_err.is_some() {
+ self.close_dd();
+ } else if self.delete_dialog_state.is_on_yes {
// If within dd...
if self.dd_err.is_none() {
// Also ensure that we didn't just fail a dd...