From 8ff984a934fa1d8159e936e2d2bcf989f5ed3b45 Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Mon, 26 May 2014 12:50:56 -0500 Subject: [PATCH] make c:x;c:f keybinding use file-menu:open-callback (when it can) --- .../gui-lib/framework/private/keymap.rkt | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/pkgs/gui-pkgs/gui-lib/framework/private/keymap.rkt b/pkgs/gui-pkgs/gui-lib/framework/private/keymap.rkt index bbc0b5acb4..20740c3b85 100644 --- a/pkgs/gui-pkgs/gui-lib/framework/private/keymap.rkt +++ b/pkgs/gui-pkgs/gui-lib/framework/private/keymap.rkt @@ -1429,11 +1429,22 @@ #t)] [load-file (λ (edit event) - (let ([fn (send edit get-filename)]) - (handler:open-file - (and fn - (let-values ([(base name dir) (split-path fn)]) - base)))) + (define (fallback) + (let ([fn (send edit get-filename)]) + (handler:open-file + (and fn + (let-values ([(base name dir) (split-path fn)]) + base))))) + (cond + [(is-a? edit editor:basic<%>) + (define fr (send edit get-top-level-window)) + (cond + [(is-a? fr frame:standard-menus<%>) + (send fr file-menu:open-callback + (send fr file-menu:get-open-item) + event)] + [else (fallback)])] + [else (fallback)]) #t)]) (λ (kmap #:alt-as-meta-keymap [alt-as-meta-keymap #f]) (let* ([map (λ (key func)