From eafc586bf3427dcd72bf6a1d4d1acf12b4bf01d3 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sun, 28 Nov 2010 17:10:42 -0700 Subject: [PATCH] cocoa: fix race condition on window enabling original commit: 37d16cf8f81a5b486ca79d5c6b6695de5dc95455 --- collects/mred/private/wx/cocoa/canvas.rkt | 1 + collects/mred/private/wx/cocoa/window.rkt | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/collects/mred/private/wx/cocoa/canvas.rkt b/collects/mred/private/wx/cocoa/canvas.rkt index 551eed0d..7e3d0cdb 100644 --- a/collects/mred/private/wx/cocoa/canvas.rkt +++ b/collects/mred/private/wx/cocoa/canvas.rkt @@ -612,6 +612,7 @@ 1)])) (define/override (enable-window on?) + ;; in atomic mode (let ([on? (and on? (is-window-enabled?))]) (let ([w (tell content-cocoa window)]) (when (ptr-equal? content-cocoa (tell w firstResponder)) diff --git a/collects/mred/private/wx/cocoa/window.rkt b/collects/mred/private/wx/cocoa/window.rkt index 0c37a04e..dbe29c72 100644 --- a/collects/mred/private/wx/cocoa/window.rkt +++ b/collects/mred/private/wx/cocoa/window.rkt @@ -520,9 +520,11 @@ (define/public (is-window-enabled?) enabled?) (define/public (enable on?) - (set! enabled? on?) - (enable-window on?)) + (atomically + (set! enabled? on?) + (enable-window on?))) (define/public (enable-window on?) + ;; in atomic mode (void)) (define block-all-mouse-events? #f)