aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Selection.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/Selection.cxx')
-rw-r--r--src/Selection.cxx18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/Selection.cxx b/src/Selection.cxx
index 43607b244..1ea5f1bbe 100644
--- a/src/Selection.cxx
+++ b/src/Selection.cxx
@@ -310,3 +310,21 @@ void Selection::Clear() {
ranges[mainRange].Reset();
rangeRectangular.Reset();
}
+
+void Selection::RemoveDuplicates() {
+ for (size_t i=0; i<ranges.size()-1; i++) {
+ if (ranges[i].Empty()) {
+ size_t j=i+1;
+ while (j<ranges.size()) {
+ if (ranges[i] == ranges[j]) {
+ ranges.erase(ranges.begin() + j);
+ if (mainRange >= j)
+ mainRange--;
+ } else {
+ j++;
+ }
+ }
+ }
+ }
+}
+