diff --git a/collects/framework/private/frame.ss b/collects/framework/private/frame.ss index 8e846ac8..beb7283a 100644 --- a/collects/framework/private/frame.ss +++ b/collects/framework/private/frame.ss @@ -1368,8 +1368,12 @@ (send delegate-frame update-status-line 'plt:delegate #f)]))))) (super-instantiate ()))) + (define delegatee-text<%> + (interface () + set-start/end-para)) + (define delegatee-text% - (class text:basic% + (class* text:basic% (delegatee-text<%>) (rename [super-on-paint on-paint]) (inherit get-admin) (define start-para #f) @@ -1470,7 +1474,7 @@ [b (box 0)]) (position-location pos #f b top? #f #t) (unbox b))) - (super-instantiate ()) + (super-new) (inherit set-cursor) (set-cursor (make-object cursor% 'arrow)) diff --git a/collects/framework/private/text.ss b/collects/framework/private/text.ss index 1191e915..ca430c90 100644 --- a/collects/framework/private/text.ss +++ b/collects/framework/private/text.ss @@ -590,37 +590,37 @@ (set! linked-snips (if _d (make-hash-table) #f)) - (when delegate - (refresh-delegate))) + (refresh-delegate)) (define/private (refresh-delegate) - (send delegate begin-edit-sequence) - (send delegate lock #f) - (when (is-a? this scheme:text<%>) - (send delegate set-tabs null (send this get-tab-size) #f)) - (send delegate hide-caret #t) - (send delegate erase) - (send delegate set-style-list (get-style-list)) - (let loop ([snip (find-first-snip)]) - (when snip - (let ([copy-of-snip (copy snip)]) - (send delegate insert - copy-of-snip - (send delegate last-position) - (send delegate last-position)) - (loop (send snip next))))) - (for-each - (lambda (range) - (send delegate highlight-range - (range-start range) - (range-end range) - (range-color range) - (range-b/w-bitmap range) - (range-caret-space? range) - 'high)) - (reverse (get-highlighted-ranges))) - (send delegate lock #t) - (send delegate end-edit-sequence)) + (when delegate + (send delegate begin-edit-sequence) + (send delegate lock #f) + (when (is-a? this scheme:text<%>) + (send delegate set-tabs null (send this get-tab-size) #f)) + (send delegate hide-caret #t) + (send delegate erase) + (send delegate set-style-list (get-style-list)) + (let loop ([snip (find-first-snip)]) + (when snip + (let ([copy-of-snip (copy snip)]) + (send delegate insert + copy-of-snip + (send delegate last-position) + (send delegate last-position)) + (loop (send snip next))))) + (for-each + (lambda (range) + (send delegate highlight-range + (range-start range) + (range-end range) + (range-color range) + (range-b/w-bitmap range) + (range-caret-space? range) + 'high)) + (reverse (get-highlighted-ranges))) + (send delegate lock #t) + (send delegate end-edit-sequence))) (rename [super-highlight-range highlight-range]) (define/override highlight-range @@ -717,7 +717,7 @@ (set! format _format)) (define/override (after-load-file success?) (super-after-load-file success?) - (when (and delegate success?) + (when success? (refresh-delegate))) (super-instantiate ())))