From de4158dfa5d19c6ae6cd6f61c8dc7a97e8aee27f Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Fri, 2 Jan 2009 21:31:28 +0000 Subject: [PATCH] changed f3 to behave like the 'edit|find' menu item svn: r12978 --- collects/framework/private/frame.ss | 34 +++++++++++++++++----------- collects/framework/private/keymap.ss | 5 ++-- 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/collects/framework/private/frame.ss b/collects/framework/private/frame.ss index 0990485cdc..ebce5d6120 100644 --- a/collects/framework/private/frame.ss +++ b/collects/framework/private/frame.ss @@ -1942,6 +1942,13 @@ (send text-to-search set-position anchor-pos)))))) (send tlw hide-search))))) +(send search/replace-keymap map-function "f3" "unhide-search-and-toggle-focus") +(send search/replace-keymap add-function "unhide-search-and-toggle-focus" + (λ (text evt) + (let ([tlw (send text get-top-level-window)]) + (when tlw + (send tlw unhide-search-and-toggle-focus))))) + (define searchable-canvas% (class editor-canvas% (inherit refresh get-dc get-client-size) @@ -1981,19 +1988,7 @@ (define/public (get-case-sensitive-search?) case-sensitive-search?) (define replace-visible? (preferences:get 'framework:replace-visible?)) - (define/override (edit-menu:find-callback menu evt) - (cond - [hidden? - (unhide-search #t)] - [(or (not text-to-search) - (send (send text-to-search get-canvas) has-focus?)) - (send find-edit set-position 0 (send find-edit last-position)) - (send find-canvas focus)] - [else - (let ([canvas (send text-to-search get-canvas)]) - (when canvas - (send canvas focus)))]) - #t) + (define/override (edit-menu:find-callback menu evt) (unhide-search-and-toggle-focus) #t) (define/override (edit-menu:create-find?) #t) (define/override (edit-menu:find-next-callback menu evt) (search 'forward) #t) @@ -2100,6 +2095,19 @@ (send find-edit set-position 0 (send find-edit last-position)) (send (send find-edit get-canvas) focus)))) + (define/public (unhide-search-and-toggle-focus) + (cond + [hidden? + (unhide-search #t)] + [(or (not text-to-search) + (send (send text-to-search get-canvas) has-focus?)) + (send find-edit set-position 0 (send find-edit last-position)) + (send find-canvas focus)] + [else + (let ([canvas (send text-to-search get-canvas)]) + (when canvas + (send canvas focus)))])) + (define/public (search searching-direction) (unhide-search #f) (send find-edit search searching-direction #t)) diff --git a/collects/framework/private/keymap.ss b/collects/framework/private/keymap.ss index 8fe8fec90a..c130a59f38 100644 --- a/collects/framework/private/keymap.ss +++ b/collects/framework/private/keymap.ss @@ -1311,12 +1311,13 @@ (send-frame (λ (f) (send f replace&search 'forward)))) (add "replace & search backward" (send-frame (λ (f) (send f replace&search 'backward)))) - + (add "unhide search and toggle focus" + (send-frame (λ (f) (send f unhide-search-and-toggle-focus)))) (add "hide-search" (send-frame (λ (f) (send f hide-search)))) (map "c:g" "hide-search") - (map "f3" "search forward") + (map "f3" "unhide search and toggle focus") (map "c:s" "search forward") (map "c:r" "search backward") (case (system-type)