diff --git a/src/app.rs b/src/app.rs index ef18a112..8402fcc5 100644 --- a/src/app.rs +++ b/src/app.rs @@ -359,9 +359,25 @@ impl App { proc_widget_state .columns .toggle(&processes::ProcessSorting::Mem); - proc_widget_state + if let Some(mem_percent_state) = proc_widget_state .columns - .toggle(&processes::ProcessSorting::MemPercent); + .toggle(&processes::ProcessSorting::MemPercent) + { + if proc_widget_state.process_sorting_type + == processes::ProcessSorting::MemPercent + || proc_widget_state.process_sorting_type + == processes::ProcessSorting::Mem + { + if mem_percent_state { + proc_widget_state.process_sorting_type = + processes::ProcessSorting::MemPercent; + } else { + proc_widget_state.process_sorting_type = + processes::ProcessSorting::Mem; + } + } + } + self.proc_state.force_update = Some(self.current_widget.widget_id); } } diff --git a/src/app/states.rs b/src/app/states.rs index 5e160778..051991c6 100644 --- a/src/app/states.rs +++ b/src/app/states.rs @@ -260,9 +260,13 @@ impl Default for ProcColumn { } impl ProcColumn { - pub fn toggle(&mut self, column: &ProcessSorting) { + /// Returns its new status. + pub fn toggle(&mut self, column: &ProcessSorting) -> Option { if let Some(mapping) = self.column_mapping.get_mut(column) { mapping.enabled = !(mapping.enabled); + Some(mapping.enabled) + } else { + None } }