From 60a035889fd7749d018147b269578507f6642db0 Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Fri, 28 Sep 2012 23:08:24 -0500 Subject: [PATCH] make tooltips go away if the drracket window isn't the top-level window (and make them not appear in that case, too) closes PR 13139 --- collects/drracket/private/syncheck/gui.rkt | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/collects/drracket/private/syncheck/gui.rkt b/collects/drracket/private/syncheck/gui.rkt index 3a2974d6b4..d3ca124b05 100644 --- a/collects/drracket/private/syncheck/gui.rkt +++ b/collects/drracket/private/syncheck/gui.rkt @@ -999,20 +999,33 @@ If the namespace does not, they are colored the unbound color. (define-values (pos text) (get-pos/text-dc-location x y)) (define arrow-record (and text pos (hash-ref arrow-records text #f))) (define eles (and arrow-record (interval-map-ref arrow-record pos null))) - (define tooltip (cond [(equal? latent-eles eles) latent-tooltip] + (define we-focused-frame? + (let ([f (get-top-level-focus-window)]) + (and f + (eq? f + (let loop ([w (get-canvas)]) + (cond + [(is-a? w top-level-window<%>) + w] + [(is-a? w area<%>) + (loop (send w get-parent))] + [else #f])))))) + (define tooltip (cond [(not we-focused-frame?) #f] + [(equal? latent-eles eles) latent-tooltip] [else (get-tooltip eles)])) (values pos text eles tooltip)] [else (values #f #f #f #f)])) (define text-changed? (not (eq? latent-text text))) (define eles-changed? (not (equal? latent-eles eles))) + (define tooltip-changed? (not (equal? latent-tooltip tooltip))) (set! latent-pos pos) (set! latent-text text) (set! latent-eles eles) (set! latent-tooltip tooltip) - (or text-changed? eles-changed?)) + (or text-changed? eles-changed? tooltip-changed?)) (define (update-drawn-arrows) (set! cursor-pos latent-pos)