From dc7e8ef379a65af098fea1fcddd5f194429a4564 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Mon, 9 May 2011 17:27:48 -0600 Subject: [PATCH] slideshow: improve viewer inset handling --- collects/slideshow/viewer.rkt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/collects/slideshow/viewer.rkt b/collects/slideshow/viewer.rkt index ecd36fa9ba..f9f8fa29ba 100644 --- a/collects/slideshow/viewer.rkt +++ b/collects/slideshow/viewer.rkt @@ -463,12 +463,13 @@ (define current-sinset zero-inset) (define resizing-frame? #f) - (define (reset-display-inset! sinset) + (define (reset-display-inset! sinset dc) (unless (and (= (sinset-l current-sinset) (sinset-l sinset)) (= (sinset-t current-sinset) (sinset-t sinset)) (= (sinset-r current-sinset) (sinset-r sinset)) (= (sinset-b current-sinset) (sinset-b sinset))) (set! resizing-frame? #t) ; hack --- see yield below + (send dc clear) (send f resize (max 1 (- (inexact->exact (floor config:actual-screen-w)) (inexact->exact (floor (* (+ (sinset-l sinset) (sinset-r sinset)) @@ -489,7 +490,7 @@ ;; sizes, and so that the generated on-size callback ;; can be ignored. Obviously, using yield creates a ;; kind of race condition for incoming events from the user. - (yield) + (let loop () (when (yield) (loop))) (set! resizing-frame? #f))) @@ -735,7 +736,7 @@ (define/public (redraw) (unless printing? - (reset-display-inset! (sliderec-inset (talk-list-ref current-page))) + (reset-display-inset! (sliderec-inset (talk-list-ref current-page)) (get-dc)) (send commentary lock #f) (send commentary begin-edit-sequence) (send commentary erase)