diff options
-rw-r--r-- | Applications/SystemMonitor/ProcessModel.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/Applications/SystemMonitor/ProcessModel.cpp b/Applications/SystemMonitor/ProcessModel.cpp index 26b94d1606..bbe52779e0 100644 --- a/Applications/SystemMonitor/ProcessModel.cpp +++ b/Applications/SystemMonitor/ProcessModel.cpp @@ -352,6 +352,7 @@ GUI::Variant ProcessModel::data(const GUI::ModelIndex& index, Role role) const void ProcessModel::update() { + auto previous_pid_count = m_pids.size(); auto all_processes = Core::ProcessStatisticsReader::get_all(); unsigned last_sum_times_scheduled = 0; @@ -434,5 +435,7 @@ void ProcessModel::update() if (on_cpu_info_change) on_cpu_info_change(m_cpus); - did_update(GUI::Model::UpdateFlag::DontInvalidateIndexes); + // FIXME: This is a rather hackish way of invalidating indexes. + // It would be good if GUI::Model had a way to orchestrate removal/insertion while preserving indexes. + did_update(previous_pid_count == m_pids.size() ? GUI::Model::UpdateFlag::DontInvalidateIndexes : GUI::Model::UpdateFlag::InvalidateAllIndexes); } |