diff options
Diffstat (limited to 'cocoa/ScintillaCocoa.mm')
-rw-r--r-- | cocoa/ScintillaCocoa.mm | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/cocoa/ScintillaCocoa.mm b/cocoa/ScintillaCocoa.mm index 7fc07c7c1..a19b62216 100644 --- a/cocoa/ScintillaCocoa.mm +++ b/cocoa/ScintillaCocoa.mm @@ -1439,29 +1439,24 @@ bool ScintillaCocoa::HaveMouseCapture() /** * Synchronously paint a rectangle of the window. */ -void ScintillaCocoa::SyncPaint(void* gc, PRectangle rc) +bool ScintillaCocoa::SyncPaint(void* gc, PRectangle rc) { paintState = painting; rcPaint = rc; PRectangle rcText = GetTextRectangle(); paintingAllText = rcPaint.Contains(rcText); + bool succeeded = true; Surface *sw = Surface::Allocate(SC_TECHNOLOGY_DEFAULT); if (sw) { sw->Init(gc, wMain.GetID()); Paint(sw, rc); - if (paintState == paintAbandoned) - { - // Do a full paint. - rcPaint = GetClientRectangle(); - paintState = painting; - paintingAllText = true; - Paint(sw, rcPaint); - } + succeeded = paintState != paintAbandoned; sw->Release(); delete sw; } paintState = notPainting; + return succeeded; } //-------------------------------------------------------------------------------------------------- @@ -1769,9 +1764,9 @@ void ScintillaCocoa::IdleTimerFired() * @param rect The area to paint, given in the sender's coordinate system. * @param gc The context we can use to paint. */ -void ScintillaCocoa::Draw(NSRect rect, CGContextRef gc) +bool ScintillaCocoa::Draw(NSRect rect, CGContextRef gc) { - SyncPaint(gc, NSRectToPRectangle(rect)); + return SyncPaint(gc, NSRectToPRectangle(rect)); } //-------------------------------------------------------------------------------------------------- |