From 405e51bb053c5bce7b972d47706ab81ac136edd7 Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Tue, 5 Feb 2013 07:51:52 -0600 Subject: [PATCH] adjust contour to track edit sequences better Specifically when there is no delegate and an edit sequence is started, track that differently in case a delegate is set before the edit sequence ends (in which case we don't want to end the edit sequence in the delegate since we didn't start it there) related to PR 13491 --- collects/framework/private/text.rkt | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/collects/framework/private/text.rkt b/collects/framework/private/text.rkt index e756a72121..21baaf45b9 100644 --- a/collects/framework/private/text.rkt +++ b/collects/framework/private/text.rkt @@ -1732,14 +1732,25 @@ (when active-canvas (send (send active-canvas get-top-level-window) delegate-moved)))))) + (define no-delegate-edit-sequence-depth 0) + (define/augment (on-edit-sequence) - (when delegate - (send delegate begin-edit-sequence)) + (cond + [delegate + (send delegate begin-edit-sequence)] + [else + (set! no-delegate-edit-sequence-depth + (+ no-delegate-edit-sequence-depth 1))]) (inner (void) on-edit-sequence)) (define/augment (after-edit-sequence) - (when delegate - (send delegate end-edit-sequence)) + (cond + [(and delegate + (= 0 no-delegate-edit-sequence-depth)) + (send delegate end-edit-sequence)] + [else + (set! no-delegate-edit-sequence-depth + (- no-delegate-edit-sequence-depth 1))]) (inner (void) after-edit-sequence)) (define/override (resized snip redraw-now?)