From 3873064c8041fbcf646b9a3e0fa2ea2a0c3b050c Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Mon, 23 Nov 2015 20:45:25 -0700 Subject: [PATCH] Cocoa: avoid over-eager refresh on OS X 10.11 A relatively late correction to refresh handling for El Capitan (commit 9bf18505d5) causes a canvas to be refreshed too often in some cases. Delay the refresh to restore the old timing without the old bug. --- gui-lib/mred/private/wx/cocoa/frame.rkt | 5 ++++- gui-lib/mred/private/wxme/editor-canvas.rkt | 6 +++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/gui-lib/mred/private/wx/cocoa/frame.rkt b/gui-lib/mred/private/wx/cocoa/frame.rkt index 31f7c5f1..fdcce5c8 100644 --- a/gui-lib/mred/private/wx/cocoa/frame.rkt +++ b/gui-lib/mred/private/wx/cocoa/frame.rkt @@ -430,7 +430,10 @@ (tellv cocoa enableFlushWindow) (when (version-10.11-or-later?) (tellv cocoa setAutodisplay: #:type _BOOL #t) - (tellv cocoa displayIfNeeded)))) + (queue-window-refresh-event + this + (lambda () + (tellv cocoa displayIfNeeded)))))) (define/public (force-window-focus) (let ([next (get-app-front-window)]) diff --git a/gui-lib/mred/private/wxme/editor-canvas.rkt b/gui-lib/mred/private/wxme/editor-canvas.rkt index 2a8b924a..4ff6ded5 100644 --- a/gui-lib/mred/private/wxme/editor-canvas.rkt +++ b/gui-lib/mred/private/wxme/editor-canvas.rkt @@ -306,14 +306,14 @@ (maybe-reset-size)))))) (define/private (maybe-reset-size) - (begin-refresh-sequence) (let-boxes ([w 0] [h 0]) (get-size w h) (unless (and (= w lastwidth) (= h lastheight)) - (reset-size))) - (end-refresh-sequence)) + (begin-refresh-sequence) + (reset-size) + (end-refresh-sequence)))) (define/private (reset-size) (reset-visual #f)