From 548bbd2e38d095ad46828595bb75ec1d96d09562 Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Thu, 28 Dec 2006 02:39:08 +0000 Subject: [PATCH] PR 8449 svn: r5190 --- collects/help/private/gui.ss | 39 +++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/collects/help/private/gui.ss b/collects/help/private/gui.ss index af3252967b..03575a12c7 100644 --- a/collects/help/private/gui.ss +++ b/collects/help/private/gui.ss @@ -161,14 +161,21 @@ url] ;; send the url off to another browser - [(or (and (string? (url-scheme url)) + [(and (string? (url-scheme url)) (not (member (url-scheme url) '("http")))) - (and (preferences:get 'drscheme:help-desk:ask-about-external-urls) - (ask-user-about-separate-browser)) - (preferences:get 'drscheme:help-desk:separate-browser)) (send-url (url->string url)) #f] - + [(preferences:get 'drscheme:help-desk:ask-about-external-urls) + (case (ask-user-about-separate-browser) + [(separate) + (send-url (url->string url)) + #f] + [(internal) + url] + [else #f])] + [(preferences:get 'drscheme:help-desk:separate-browser) + (send-url url) + #f] [else url])] [else url])) (super-new))) @@ -261,6 +268,7 @@ (not (null? (url-path url))) (equal? (path/param-path (car (url-path url))) "doc"))) + ;; ask-user-about-separate-browser : -> (union #f 'separate 'internal) (define (ask-user-about-separate-browser) (define separate-default? (preferences:get 'drscheme:help-desk:separate-browser)) @@ -271,18 +279,25 @@ (string-constant dont-ask-again-always-current) (string-constant plt:hd:homebrew-browser) (string-constant plt:hd:separate-browser) - #f + (string-constant cancel) #f ; no parent (cons (if separate-default? 'default=2 'default=1) - '(no-default disallow-close)))]) - (let ([separate? (= result 2)]) - (preferences:set 'drscheme:help-desk:separate-browser separate?) - (when checked? - (preferences:set 'drscheme:help-desk:ask-about-external-urls #f)) - separate?))) + '(no-default)))]) + (when checked? + (preferences:set 'drscheme:help-desk:ask-about-external-urls #f)) + (case result + [(2) + (preferences:set 'drscheme:help-desk:separate-browser #t) + 'separate] + [(1) + (preferences:set 'drscheme:help-desk:separate-browser #f) + 'internal] + [(#f 3) + #f] + [else (error 'ack)]))) (define make-help-desk-framework-mixin (mixin (frame:searchable<%> frame:standard-menus<%>) ()