adjust online expansion's internals to call set-dirty only at

the end of an edit sequence instead of on every edit inside
the edit sequence
This commit is contained in:
Robby Findler 2012-12-24 12:31:55 -06:00
parent a504f77d54
commit 7041ea1d80

View File

@ -1085,7 +1085,7 @@
get-tab get-canvas invalidate-bitmap-cache get-tab get-canvas invalidate-bitmap-cache
set-position get-start-position get-end-position set-position get-start-position get-end-position
highlight-range dc-location-to-editor-location highlight-range dc-location-to-editor-location
begin-edit-sequence end-edit-sequence) begin-edit-sequence end-edit-sequence in-edit-sequence?)
(define/public (fetch-data-to-send) (define/public (fetch-data-to-send)
@ -1312,14 +1312,26 @@
(values x y w h)) (values x y w h))
(define need-to-dirty? #f)
(define/augment (after-insert start end) (define/augment (after-insert start end)
(oc-set-dirty (get-tab)) (if (in-edit-sequence?)
(set! need-to-dirty? #t)
(oc-set-dirty (get-tab)))
(inner (void) after-insert start end)) (inner (void) after-insert start end))
(define/augment (after-delete start end) (define/augment (after-delete start end)
(oc-set-dirty (get-tab)) (if (in-edit-sequence?)
(set! need-to-dirty? #t)
(oc-set-dirty (get-tab)))
(inner (void) after-delete start end)) (inner (void) after-delete start end))
(define/augment (after-edit-sequence)
(when need-to-dirty?
(set! need-to-dirty? #f)
(oc-set-dirty (get-tab)))
(inner (void) after-edit-sequence))
(define/augment (after-load-file success?) (define/augment (after-load-file success?)
(when success? (when success?
(oc-set-dirty (get-tab))) (oc-set-dirty (get-tab)))