From 9d53a7c65ac27d2b7d8cbc9c6ea393063a4e5d53 Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Tue, 12 Aug 2003 03:16:05 +0000 Subject: [PATCH] .. original commit: 0ea7279ce43538129cc71427153ffd48f2833854 --- collects/framework/private/text.ss | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/collects/framework/private/text.ss b/collects/framework/private/text.ss index e383a3b0..5f615a0c 100644 --- a/collects/framework/private/text.ss +++ b/collects/framework/private/text.ss @@ -367,17 +367,28 @@ (define/override (on-insert start len) (begin-edit-sequence) (super-on-insert start len)) + (inherit find-string) (define/override (after-insert start len) (unless rewriting (set! rewriting #t) - (let loop ([pos start]) + (let ([str (string (integer->char 160))] + [last-pos (+ start len)]) + (let loop ([pos start]) + (when (<= pos (+ start len)) + (let ([next-pos (find-string str 'forward pos last-pos)]) + (when next-pos + (delete next-pos (+ next-pos 1) #f) + (insert " " next-pos next-pos #f) + (loop (+ next-pos 1))))))) + #; + (let loop ([pos start]) (when (<= pos (+ start len)) (let ([char (get-character pos)]) (when (char=? char (integer->char 160)) (delete pos (+ pos 1) #f) (insert " " pos pos #f)) - (loop (+ pos 1)))) - (set! rewriting #f))) + (loop (+ pos 1))))) + (set! rewriting #f)) (super-after-insert start len) (end-edit-sequence)) (super-instantiate ())))