From 318e9cf4053b0f11a27b0db31da8c330a25e35df Mon Sep 17 00:00:00 2001 From: jules Date: Fri, 11 Oct 2013 22:07:00 +0100 Subject: [PATCH] Fixed code editor line number display problem. --- .../code_editor/juce_CodeEditorComponent.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp b/modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp index 571957eef5..ef8184632f 100644 --- a/modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp +++ b/modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp @@ -283,7 +283,7 @@ private: class CodeEditorComponent::GutterComponent : public Component { public: - GutterComponent() : lastNumLines (0) {} + GutterComponent() : firstLine (0), lastNumLines (0) {} void paint (Graphics& g) override { @@ -313,18 +313,20 @@ public: ga.draw (g); } - void documentChanged (CodeDocument& doc) + void documentChanged (CodeDocument& doc, int firstLineOnScreen) { const int newNumLines = doc.getNumLines(); - if (newNumLines != lastNumLines) + + if (newNumLines != lastNumLines || firstLineOnScreen != firstLine) { + firstLine = firstLineOnScreen; lastNumLines = newNumLines; repaint(); } } private: - int lastNumLines; + int firstLine, lastNumLines; }; @@ -538,7 +540,7 @@ void CodeEditorComponent::rebuildLineTokens() verticalScrollBar.getX(), lineHeight * (1 + maxLineToRepaint - minLineToRepaint) + 2); if (gutter != nullptr) - gutter->documentChanged (document); + gutter->documentChanged (document, firstLineOnScreen); } void CodeEditorComponent::codeDocumentChanged (const int startIndex, const int endIndex)