From 0b8bccc8d4cbeba6e3b5a9a413cd066c27da33fb Mon Sep 17 00:00:00 2001 From: James Swaine Date: Thu, 19 Jul 2012 17:05:04 -0500 Subject: [PATCH] Future visualizer - only redraw overlay when moused-over event changes --- collects/future-visualizer/private/pict-canvas.rkt | 2 +- .../future-visualizer/private/visualizer-gui.rkt | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/collects/future-visualizer/private/pict-canvas.rkt b/collects/future-visualizer/private/pict-canvas.rkt index f45fd8b884..f2115e5efd 100644 --- a/collects/future-visualizer/private/pict-canvas.rkt +++ b/collects/future-visualizer/private/pict-canvas.rkt @@ -83,7 +83,7 @@ (set! needs-redraw #t) (redraw-the-bitmap/maybe-delayed! (get-viewable-region) #:only-the-overlay? only-the-overlay?) (set! repainting? #t) - (refresh))] + (refresh))] [interval 100] [just-once? #t]) (set! delaying-redraw #t)])) diff --git a/collects/future-visualizer/private/visualizer-gui.rkt b/collects/future-visualizer/private/visualizer-gui.rkt index 5ac8f0039b..7c02681dde 100644 --- a/collects/future-visualizer/private/visualizer-gui.rkt +++ b/collects/future-visualizer/private/visualizer-gui.rkt @@ -71,7 +71,7 @@ (send data-label1 set-label (format "Touching future ~a" (event-user-data evt)))] [else (send data-label1 set-label "") - (send data-label2 set-label "")])) + (send data-label2 set-label "")])) (begin (send selected-label set-label "") (send time-label set-label "") @@ -152,9 +152,13 @@ [parent timeline-container] [pict-builder (λ (vregion) (timeline-pict-for-trace-data vregion the-trace frameinfo segments))] [hover-handler (λ (x y vregion) - (let ([seg (find-seg-for-coords x y timeline-mouse-index)]) - (set! hover-seg seg) - (post-event listener-table 'segment-hover timeline-panel seg)))] + (let ([seg (find-seg-for-coords x y timeline-mouse-index)]) + (cond + [(equal? seg hover-seg) #f] + [else + (set! hover-seg seg) + (post-event listener-table 'segment-hover timeline-panel seg) + #t])))] [click-handler (λ (x y vregion) (let ([seg (find-seg-for-coords x y timeline-mouse-index)]) (set! tacked-seg seg)