diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Document.cxx | 6 | ||||
-rw-r--r-- | src/PerLine.cxx | 4 | ||||
-rw-r--r-- | src/PerLine.h | 2 |
3 files changed, 12 insertions, 0 deletions
diff --git a/src/Document.cxx b/src/Document.cxx index 69eec5254..54d14cda3 100644 --- a/src/Document.cxx +++ b/src/Document.cxx @@ -2518,6 +2518,9 @@ int Document::AnnotationLines(Sci::Line line) const noexcept { } void Document::AnnotationClearAll() { + if (Annotations()->Empty()) { + return; + } const Sci::Line maxEditorLine = LinesTotal(); for (Sci::Line l=0; l<maxEditorLine; l++) AnnotationSetText(l, nullptr); @@ -2550,6 +2553,9 @@ void Document::EOLAnnotationSetStyle(Sci::Line line, int style) { } void Document::EOLAnnotationClearAll() { + if (EOLAnnotations()->Empty()) { + return; + } const Sci::Line maxEditorLine = LinesTotal(); for (Sci::Line l=0; l<maxEditorLine; l++) EOLAnnotationSetText(l, nullptr); diff --git a/src/PerLine.cxx b/src/PerLine.cxx index 762891ee3..2ea3f0ce4 100644 --- a/src/PerLine.cxx +++ b/src/PerLine.cxx @@ -357,6 +357,10 @@ std::unique_ptr<char[]>AllocateAnnotation(size_t length, int style) { LineAnnotation::~LineAnnotation() { } +bool LineAnnotation::Empty() const noexcept { + return annotations.Length() == 0; +} + void LineAnnotation::Init() { ClearAll(); } diff --git a/src/PerLine.h b/src/PerLine.h index 8f88183f1..3f7defa3c 100644 --- a/src/PerLine.h +++ b/src/PerLine.h @@ -127,6 +127,8 @@ public: void operator=(const LineAnnotation &) = delete; void operator=(LineAnnotation &&) = delete; ~LineAnnotation() override; + + [[nodiscard]] bool Empty() const noexcept; void Init() override; void InsertLine(Sci::Line line) override; void InsertLines(Sci::Line line, Sci::Line lines) override; |