diff options
Diffstat (limited to 'src/Selection.cxx')
-rw-r--r-- | src/Selection.cxx | 18 |
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++; + } + } + } + } +} + |