racket/gui: fix problem with recent edit-sequence change

Restores undo support in DrRacket, for example.

original commit: 230463fa3d353a8c09943bb6520752f721334257
This commit is contained in:
Matthew Flatt 2012-05-05 22:09:13 -06:00
parent 1be19d56bd
commit 1f6ad0387a

View File

@ -759,20 +759,23 @@
(if (zero? delay-refresh)
(log-error "end-edit-sequence without begin-edit-sequence")
(let ([new-delay-refresh (sub1 delay-refresh)])
(when (zero? new-delay-refresh)
(cond
[(zero? new-delay-refresh)
(end-streaks null)
(pop-streaks)
(parameterize ([in-delayed-refresh #t])
(redraw))
(when ALLOW-X-STYLE-SELECTION?
(set! need-x-copy? #f))
(after-edit-sequence)
(when (positive? s-noundomode)
(set! s-noundomode (sub1 s-noundomode)))
(when s-need-on-display-size?
(set! s-need-on-display-size? #f)
(on-display-size)))
(set! delay-refresh new-delay-refresh))))
(on-display-size))
(set! delay-refresh 0)
(when ALLOW-X-STYLE-SELECTION?
(set! need-x-copy? #f))
(after-edit-sequence)]
[else
(set! delay-refresh new-delay-refresh)])
(when (positive? s-noundomode)
(set! s-noundomode (sub1 s-noundomode))))))
(def/override (refresh-delayed?)
(or (and (delay-refresh . > . 0)