changes the way the drracket frame is initialized so that it finishes on a single GUI event callback

related to PR 11590
This commit is contained in:
Robby Findler 2011-01-04 06:18:44 -06:00
parent dd9e8c530b
commit b0309ae99e
2 changed files with 10 additions and 8 deletions

View File

@ -1674,8 +1674,10 @@ TODO
(reset-console) (reset-console)
(insert-prompt) (insert-prompt)
;; call the first-opened method on the user's thread, but wait here for that to terminate
(let ([lang (drracket:language-configuration:language-settings-language user-language-settings)] (let ([lang (drracket:language-configuration:language-settings-language user-language-settings)]
[drr-evtspace (current-eventspace)]) [drr-evtspace (current-eventspace)]
[s (make-semaphore 0)])
(run-in-evaluation-thread (run-in-evaluation-thread
(λ () (λ ()
(let/ec k (let/ec k
@ -1689,12 +1691,12 @@ TODO
[else [else
;; this is the backwards compatible case. ;; this is the backwards compatible case.
(send lang first-opened)]))) (send lang first-opened)])))
(parameterize ([current-eventspace drr-evtspace]) (semaphore-post s)))
(queue-callback (semaphore-wait s))
(λ ()
(send context enable-evaluation) (send context enable-evaluation)
(end-edit-sequence) (end-edit-sequence)
(clear-undos)))))))) (clear-undos))
(define indenting-limit 0) (define indenting-limit 0)
(define/override (get-limit n) (define/override (get-limit n)

View File

@ -786,7 +786,7 @@ module browser threading seems wrong.
(and (or (= (last-position) 0) (not really-modified?)) (and (or (= (last-position) 0) (not really-modified?))
(not (is-modified?)) (not (is-modified?))
(not (get-filename)))) (not (get-filename))))
;; inserts the auto-text if any, and executes the text if so ;; inserts the auto-text if any
(define/public (insert-auto-text) (define/public (insert-auto-text)
(define lang (define lang
(drracket:language-configuration:language-settings-language (drracket:language-configuration:language-settings-language