diff --git a/pkgs/gui-pkgs/gui-lib/framework/private/color.rkt b/pkgs/gui-pkgs/gui-lib/framework/private/color.rkt index 6dfdd9fdb3..01d54b9c22 100644 --- a/pkgs/gui-pkgs/gui-lib/framework/private/color.rkt +++ b/pkgs/gui-pkgs/gui-lib/framework/private/color.rkt @@ -472,16 +472,15 @@ added get-regions (set-lexer-state-up-to-date?! ls #f) (update-lexer-state-observers) (queue-callback (λ () (colorer-callback)) #f))) - ((>= edit-start-pos (lexer-state-invalid-tokens-start ls)) + ((and (>= edit-start-pos (lexer-state-invalid-tokens-start ls)) + (> edit-start-pos (lexer-state-current-pos ls))) (let-values (((tok-start tok-end valid-tree invalid-tree orig-data) (split-backward ls (lexer-state-invalid-tokens ls) edit-start-pos))) (set-lexer-state-invalid-tokens! ls invalid-tree) (set-lexer-state-invalid-tokens-start! ls (+ (lexer-state-invalid-tokens-start ls) tok-end change-length)) - (set-lexer-state-invalid-tokens-mode! ls (and orig-data (data-lexer-mode orig-data))) - (when (<= edit-start-pos (lexer-state-current-pos ls)) - (set-lexer-state-current-pos! ls (+ (lexer-state-current-pos ls) change-length))))) + (set-lexer-state-invalid-tokens-mode! ls (and orig-data (data-lexer-mode orig-data))))) ((> edit-start-pos (lexer-state-current-pos ls)) (set-lexer-state-invalid-tokens-start! ls diff --git a/pkgs/unstable-pkgs/unstable-test/tests/unstable/2d/lexer-stress-test.rkt b/pkgs/unstable-pkgs/unstable-test/tests/unstable/2d/lexer-stress-test.rkt index 94357c26cb..be905169e5 100644 --- a/pkgs/unstable-pkgs/unstable-test/tests/unstable/2d/lexer-stress-test.rkt +++ b/pkgs/unstable-pkgs/unstable-test/tests/unstable/2d/lexer-stress-test.rkt @@ -8,7 +8,7 @@ (define f (new frame% [label ""] [width 400] [height 600])) (define t (new (class racket:text% (define/override (tokenizing-give-up-early) - (when (zero? (random 4)) + (when (zero? (random 2)) (do-something)) #t) (super-new))))