Index: pdf/pdfium/pdfium_engine.cc |
diff --git a/pdf/pdfium/pdfium_engine.cc b/pdf/pdfium/pdfium_engine.cc |
index b8536c7fb785f1197e5d592b4870c29b6b39f3f0..eb7f4cb08fb315aac8cb6540a857b39c3212fd21 100644 |
--- a/pdf/pdfium/pdfium_engine.cc |
+++ b/pdf/pdfium/pdfium_engine.cc |
@@ -3290,15 +3290,21 @@ PDFiumEngine::SelectionChangeInvalidator::~SelectionChangeInvalidator() { |
} |
} |
+ bool selection_changed = false; |
for (const auto& old_selection : old_selections_) { |
- if (!old_selection.IsEmpty()) |
+ if (!old_selection.IsEmpty()) { |
engine_->client_->Invalidate(old_selection); |
+ selection_changed = true; |
+ } |
} |
for (const auto& new_selection : new_selections) { |
- if (!new_selection.IsEmpty()) |
+ if (!new_selection.IsEmpty()) { |
engine_->client_->Invalidate(new_selection); |
+ selection_changed = true; |
+ } |
} |
- engine_->OnSelectionChanged(); |
+ if (selection_changed) |
+ engine_->OnSelectionChanged(); |
} |
void PDFiumEngine::SelectionChangeInvalidator::GetVisibleSelectionsScreenRects( |