diff --git a/collects/drscheme/private/rep.ss b/collects/drscheme/private/rep.ss index 340c56a737..650115d5a0 100644 --- a/collects/drscheme/private/rep.ss +++ b/collects/drscheme/private/rep.ss @@ -893,14 +893,17 @@ TODO (ask-about-kill? #f)) (define/public (get-in-evaluation?) in-evaluation?) - (define/private (insert-warning message) - (begin-edit-sequence) - (let ([start (get-insertion-point)]) - (insert-before message) - (let ([end (get-insertion-point)]) - (change-style warning-style-delta start end))) - (insert-before "\n") - (end-edit-sequence)) + (define/public-final (insert-warning message) + (let ([locked? (is-locked?)]) + (when locked? (lock #f)) + (begin-edit-sequence) + (let ([start (get-insertion-point)]) + (insert-before message) + (let ([end (get-insertion-point)]) + (change-style warning-style-delta start end))) + (insert-before "\n") + (end-edit-sequence) + (when locked? (lock #t)))) (field (already-warned? #f) (show-no-user-evaluation-message? #t))