From 6acf9b6e00d70c67f1d4f3effd7a153fe774ccd7 Mon Sep 17 00:00:00 2001 From: Ryan Culpepper Date: Thu, 9 Dec 2010 02:41:54 -0700 Subject: [PATCH] macro-stepper: untack arrows on navigation Closes PR 11485 --- .../macro-debugger/syntax-browser/text.rkt | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/collects/macro-debugger/syntax-browser/text.rkt b/collects/macro-debugger/syntax-browser/text.rkt index 334bac4976..950a9232d4 100644 --- a/collects/macro-debugger/syntax-browser/text.rkt +++ b/collects/macro-debugger/syntax-browser/text.rkt @@ -32,8 +32,8 @@ (define white (send the-color-database find-color "white")) -;; A Drawing is (make-drawing number number (??? -> void) (box boolean)) -(define-struct drawing (start end draw tacked?)) +;; A Drawing is (make-drawing (??? -> void) (box boolean)) +(define-struct drawing (draw tacked?)) (define-struct idloc (start end id)) @@ -101,12 +101,12 @@ (define/augment (after-delete start len) (for ([im (in-hash-values table)]) (interval-map-contract! im start (+ start len))) - (inner (void) after-delete)) + (inner (void) after-delete start len)) (define/augment (after-insert start len) (for ([im (in-hash-values table)]) (interval-map-expand! im start (+ start len))) - (inner (void) after-insert)) + (inner (void) after-insert start len)) (super-new))) @@ -153,7 +153,7 @@ (invalidate-bitmap-cache 0.0 0.0 +inf.0 +inf.0))) (define/public (add-hover-drawing start end draw [tack-box (box #f)]) - (let ([drawing (make-drawing start end draw tack-box)]) + (let ([drawing (make-drawing draw tack-box)]) (interval-map-cons*! drawings-list start (add1 end) drawing @@ -195,6 +195,15 @@ (else (super on-local-event ev)))) + ;; Clear tacked-table on any modification. + ;; FIXME: possible to be more precise? (but not needed for macro stepper) + (define/augment (after-delete start len) + (set! tacked-table (make-hasheq)) + (inner (void) after-delete start len)) + (define/augment (after-insert start len) + (set! tacked-table (make-hasheq)) + (inner (void) after-insert start len)) + (define/override (on-paint before? dc left top right bottom dx dy draw-caret) (super on-paint before? dc left top right bottom dx dy draw-caret) (unless before?