diff --git a/collects/mred/private/wxcanvas.ss b/collects/mred/private/wxcanvas.ss index 2bef5bab..5eb8efe4 100644 --- a/collects/mred/private/wxcanvas.ss +++ b/collects/mred/private/wxcanvas.ss @@ -224,5 +224,10 @@ 0 0 #t #t))) (inherit editor-canvas-on-scroll) (define/override (on-scroll e) - (editor-canvas-on-scroll)) + (if (or (eq? 'msw (system-type)) + (eq? 'macosx (system-type))) + (queue-window-callback + this + (lambda () (editor-canvas-on-scroll))) + (editor-canvas-on-scroll))) (super-new)))) diff --git a/collects/mred/private/wxme/editor-canvas.ss b/collects/mred/private/wxme/editor-canvas.ss index 1cf21f3b..7f76ceae 100644 --- a/collects/mred/private/wxme/editor-canvas.ss +++ b/collects/mred/private/wxme/editor-canvas.ss @@ -5,6 +5,7 @@ "editor-admin.ss" "private.ss" (only-in "cycle.ss" popup-menu%) + (only-in "../helper.ss" queue-window-callback) "wx.ss") (provide editor-canvas%) @@ -350,9 +351,17 @@ (thunk))) (define/override (on-set-focus) - (on-focus #t)) + (if (eq? 'msw (system-type)) + (queue-window-callback + this + (lambda () (on-focus #t))) + (on-focus #t))) (define/override (on-kill-focus) - (on-focus #f)) + (if (eq? 'msw (system-type)) + (queue-window-callback + this + (lambda () (on-focus #f))) + (on-focus #f))) (define/public (is-focus-on?) focuson?)