summaryrefslogtreecommitdiff
path: root/Libraries/LibGUI
diff options
context:
space:
mode:
Diffstat (limited to 'Libraries/LibGUI')
-rw-r--r--Libraries/LibGUI/SortingProxyModel.cpp10
1 files 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);
}