diff --git a/gui-lib/mred/private/wxme/editor-canvas.rkt b/gui-lib/mred/private/wxme/editor-canvas.rkt index be262e5e..fd760791 100644 --- a/gui-lib/mred/private/wxme/editor-canvas.rkt +++ b/gui-lib/mred/private/wxme/editor-canvas.rkt @@ -464,6 +464,7 @@ (case (and (positive? wheel-amt) code) [(wheel-up wheel-down) + (collect-garbage 'incremental) (when (and allow-y-scroll? (not fake-y-scroll?)) (let-boxes ([x 0] @@ -478,6 +479,7 @@ 0)]) (do-scroll x y #t x old-y))))] [(wheel-left wheel-right) + (collect-garbage 'incremental) (when (and allow-x-scroll? (not fake-x-scroll?)) (let-boxes ([x 0] diff --git a/gui-lib/mred/private/wxme/pasteboard.rkt b/gui-lib/mred/private/wxme/pasteboard.rkt index 05bb243f..23b8037c 100644 --- a/gui-lib/mred/private/wxme/pasteboard.rkt +++ b/gui-lib/mred/private/wxme/pasteboard.rkt @@ -249,6 +249,11 @@ (def/override (on-event [mouse-event% event]) (when s-admin + (when (and (not (send event moving?)) + (not (send event entering?)) + (not (send event leaving?))) + ;; Request incremental mode to improve interactivity: + (collect-garbage 'incremental)) (let-values ([(dc x y scrollx scrolly) ;; first, find clicked-on snip: (let ([x (send event get-x)] @@ -404,6 +409,8 @@ (def/override (on-char [key-event% event]) (when s-admin + ;; Request incremental mode to improve interactivity: + (collect-garbage 'incremental) (let-boxes ([scrollx 0.0] [scrolly 0.0] [dc #f]) diff --git a/gui-lib/mred/private/wxme/text.rkt b/gui-lib/mred/private/wxme/text.rkt index 5fc6b885..28bb832b 100644 --- a/gui-lib/mred/private/wxme/text.rkt +++ b/gui-lib/mred/private/wxme/text.rkt @@ -452,7 +452,9 @@ (when (and (not (send event moving?)) (not (send event entering?)) (not (send event leaving?))) - (end-streaks '(except-key-sequence cursor delayed))) + (end-streaks '(except-key-sequence cursor delayed)) + ;; Request incremental mode to improve interactivity: + (collect-garbage 'incremental)) (let-values ([(dc x y scrollx scrolly) ;; first, find clicked-on snip: (let ([x (send event get-x)] @@ -600,7 +602,9 @@ (not (eq? 'control code)) (not (eq? 'menu code)) (not (equal? code #\nul))) - (hide-cursor)) + (hide-cursor) + ;; Request incremental mode to improve interactivity: + (collect-garbage 'incremental)) (on-local-char event))))) (def/override (on-default-char [key-event% event])