From a66e55ec644afee138e6f6836d877feb91ff33f7 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sun, 16 Aug 2020 16:23:43 +0200 Subject: [PATCH] LibGUI: Make SortingProxyModel clear view selections aggressively When invalidating all indexes, tell all attached views to just wipe their selections. This is the best we can do for now. --- Libraries/LibGUI/SortingProxyModel.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Libraries/LibGUI/SortingProxyModel.cpp b/Libraries/LibGUI/SortingProxyModel.cpp index 1eccc363bd..45ff283e0b 100644 --- a/Libraries/LibGUI/SortingProxyModel.cpp +++ b/Libraries/LibGUI/SortingProxyModel.cpp @@ -44,10 +44,16 @@ SortingProxyModel::~SortingProxyModel() void SortingProxyModel::invalidate(unsigned int flags) { - if (flags == UpdateFlag::DontInvalidateIndexes) + if (flags == UpdateFlag::DontInvalidateIndexes) { sort(m_last_key_column, m_last_sort_order); - else + } else { m_mappings.clear(); + + // FIXME: This is really harsh, but without precise invalidation, not much we can do. + for_each_view([&](auto& view) { + view.selection().clear(); + }); + } did_update(flags); }