From fc7f7bed53a60d2d3785cf95093d388d39b2af11 Mon Sep 17 00:00:00 2001 From: Neil Date: Wed, 11 Nov 2015 19:14:30 +1100 Subject: Implemented idle styling. This allows painting without first styling all visible text then styling in the background using idle-time. --- cocoa/ScintillaCocoa.mm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'cocoa') diff --git a/cocoa/ScintillaCocoa.mm b/cocoa/ScintillaCocoa.mm index 8b95aae0e..982ca0423 100644 --- a/cocoa/ScintillaCocoa.mm +++ b/cocoa/ScintillaCocoa.mm @@ -1801,13 +1801,15 @@ void ScintillaCocoa::WillDraw(NSRect rect) { RefreshStyleData(); PRectangle rcWillDraw = NSRectToPRectangle(rect); - int positionAfterRect = PositionAfterArea(rcWillDraw); - pdoc->EnsureStyledTo(positionAfterRect); + const int posAfterArea = PositionAfterArea(rcWillDraw); + const int posAfterMax = PositionAfterMaxStyling(posAfterArea, true); + pdoc->StyleToAdjustingLineDuration(posAfterMax); + StartIdleStyling(posAfterMax < posAfterArea); NotifyUpdateUI(); if (WrapLines(wsVisible)) { // Wrap may have reduced number of lines so more lines may need to be styled - positionAfterRect = PositionAfterArea(rcWillDraw); - pdoc->EnsureStyledTo(positionAfterRect); + const int posAfterAreaWrapped = PositionAfterArea(rcWillDraw); + pdoc->EnsureStyledTo(posAfterAreaWrapped); // The wrapping process has changed the height of some lines so redraw all. Redraw(); } -- cgit v1.2.3