From 9120268b363728c9fca597c2088c9cafebe09d1c Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Mon, 9 Jun 2008 22:44:40 +0000 Subject: [PATCH] PR 9471 svn: r10199 --- collects/drscheme/private/debug.ss | 39 ++++++++++++++++++++++++++---- collects/drscheme/private/unit.ss | 3 ++- 2 files changed, 36 insertions(+), 6 deletions(-) diff --git a/collects/drscheme/private/debug.ss b/collects/drscheme/private/debug.ss index 59fecbabaa..8806e8ffb4 100644 --- a/collects/drscheme/private/debug.ss +++ b/collects/drscheme/private/debug.ss @@ -646,11 +646,40 @@ profile todo: (λ () (send text on-close))) (values #f (λ () (void)))))] [(path? file) - (let ([text (new text:basic%)]) - (if (send text load-file file) - (values text - (λ () (send text on-close))) - (values #f (λ () (void)))))] + (let ([file (with-handlers ((exn:fail? (λ (x) #f))) + (normal-case-path (normalize-path file)))]) + (if file + (cond + [(send (group:get-the-frame-group) + locate-file + file) + => + (λ (frame) + (cond + [(is-a? frame drscheme:unit:frame%) + (let loop ([tabs (send frame get-tabs)]) + (cond + [(null? tabs) (values #f void)] + [else + (let* ([tab (car tabs)] + [defs (send tab get-defs)]) + (if (with-handlers ((exn:fail? (λ (x) #f))) + (equal? (normalize-path (normal-case-path (send defs get-filename))) + file)) + (values defs void) + (loop (cdr tabs))))]))] + [(is-a? frame frame:editor<%>) + (values (send frame get-editor) void)] + [else (values #f void)]))] + [(path? file) + (let ([text (new text:basic%)]) + (if (send text load-file file) + (values text + (λ () (send text on-close))) + (values #f (λ () (void)))))] + [else + (values #f void)]) + (values #f void)))] [(is-a? file editor<%>) (values file void)] [else (error 'insert-context "unknown file spec ~e" file)])]) diff --git a/collects/drscheme/private/unit.ss b/collects/drscheme/private/unit.ss index 9d2461977c..c6877ac9e3 100644 --- a/collects/drscheme/private/unit.ss +++ b/collects/drscheme/private/unit.ss @@ -1173,7 +1173,8 @@ module browser threading seems wrong. ensure-defs-shown get-language-menu - register-toolbar-button)) + register-toolbar-button + get-tabs)) (define frame-mixin (mixin (drscheme:frame:<%> frame:searchable-text<%> frame:delegate<%> frame:open-here<%>)