From 103e26c094d59a46de116471dca463b3cf638dba Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Thu, 17 Nov 2005 18:34:56 +0000 Subject: [PATCH] don't expose menu-root frame through get-top-level-{focus,edit-target}-window svn: r1339 --- collects/mred/private/mrtop.ss | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/collects/mred/private/mrtop.ss b/collects/mred/private/mrtop.ss index 84d7412285..0125da8011 100644 --- a/collects/mred/private/mrtop.ss +++ b/collects/mred/private/mrtop.ss @@ -242,19 +242,26 @@ (remq root-menu-frame (map wx->mred (wx:get-top-level-windows)))) (define (get-top-level-focus-window) - (ormap (lambda (f) (and (send f is-act-on?) (wx->mred f))) (wx:get-top-level-windows))) + (ormap (lambda (f) (and (send f is-act-on?) + (let ([f (wx->mred f)]) + (and f + (not (eq? f root-menu-frame)) + f)))) + (wx:get-top-level-windows))) (define (get-top-level-edit-target-window) (let loop ([l (wx:get-top-level-windows)][f #f][s 0][ms 0]) (if (null? l) - (and f (wx->mred f)) + f (let* ([f2 (car l)] + [f2m (wx->mred f2)] [s2 (send f2 get-act-date/seconds)] [ms2 (send f2 get-act-date/milliseconds)]) - (if (or (not f) - (> s2 s) - (and (= s2 s) (> ms2 ms))) - (loop (cdr l) f2 s2 ms2) + (if (and (or (not f) + (> s2 s) + (and (= s2 s) (> ms2 ms))) + (not (eq? f2m root-menu-frame))) + (loop (cdr l) f2m s2 ms2) (loop (cdr l) f s ms)))))) (define (send-message-to-window x y m)