don't try to re-use the active frame when it isn't shown

This is a bit suspicious, since it isn't clear why a frame
whose show method has been called with #f should be considered
an active frame. Since changing that is a much more dangerous
change then, for now: closes PR 13564
This commit is contained in:
Robby Findler 2013-02-27 22:33:07 -06:00
parent 0d3fc7db93
commit 27d79aac18

View File

@ -5220,19 +5220,24 @@ module browser threading seems wrong.
(set! newest-frame #f))]
[(and name ;; only open a tab if we have a filename
(preferences:get 'drracket:open-in-tabs))
(let ([fr (let loop ([frs (cons (send (group:get-the-frame-group) get-active-frame)
(send (group:get-the-frame-group) get-frames))])
(cond
[(null? frs) #f]
[else (let ([fr (car frs)])
(or (and (is-a? fr drracket:unit:frame<%>)
fr)
(loop (cdr frs))))]))])
(if fr
(begin (send fr open-in-new-tab name)
(send fr show #t)
fr)
(create-new-drscheme-frame name)))]
(define frs (send (group:get-the-frame-group) get-frames))
(let ([ac (send (group:get-the-frame-group) get-active-frame)])
(when (and ac (send ac is-shown?))
(set! frs (cons ac (remove ac frs)))))
(define fr (let loop ([frs frs])
(cond
[(null? frs) #f]
[else (let ([fr (car frs)])
(or (and (is-a? fr drracket:unit:frame<%>)
fr)
(loop (cdr frs))))])))
(cond
[fr
(send fr open-in-new-tab name)
(send fr show #t)
fr]
[else
(create-new-drscheme-frame name)])]
[else
(create-new-drscheme-frame name)])]))