diff --git a/collects/framework/private/text.ss b/collects/framework/private/text.ss index 60b39f13..2019e25d 100644 --- a/collects/framework/private/text.ss +++ b/collects/framework/private/text.ss @@ -680,10 +680,19 @@ (enqueue-for-frame (lambda (x) (send x editor-position-changed)) 'framework:editor-position-changed)) + + (field (callback-running? #f)) (define (after-insert start len) (super-after-insert start len) (enqueue-for-frame - (lambda (x) (send x editor-position-changed)) + (lambda (x) + (unless callback-running? + (set! callback-running? #t) + (queue-callback + (lambda () + (send x editor-position-changed) + (set! callback-running? #f)) + #f))) 'framework:editor-position-changed)) (define (after-delete start len) (super-after-delete start len)