From bfc9c41358face5c6d79bad591b842e7f5dc38e8 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sun, 31 Mar 2013 06:38:38 -0600 Subject: [PATCH] racket/gui: double-check size on attmpt to set editor scroll A scroll request could fail if a resize notification is still in flight (i.e., queued but not yet executed), so double-check the size on a scroll request. Closes PR 13582 --- collects/mred/private/wxme/editor-canvas.rkt | 21 ++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/collects/mred/private/wxme/editor-canvas.rkt b/collects/mred/private/wxme/editor-canvas.rkt index fdd03f9cd0..30cf301283 100644 --- a/collects/mred/private/wxme/editor-canvas.rkt +++ b/collects/mred/private/wxme/editor-canvas.rkt @@ -297,14 +297,17 @@ (lambda () (unless (and media (send media get-printing)) - (begin-refresh-sequence) - (let-boxes ([w 0] - [h 0]) - (get-size w h) - (unless (and (= w lastwidth) - (= h lastheight)) - (reset-size))) - (end-refresh-sequence)))))) + (maybe-reset-size)))))) + + (define/private (maybe-reset-size) + (begin-refresh-sequence) + (let-boxes ([w 0] + [h 0]) + (get-size w h) + (unless (and (= w lastwidth) + (= h lastheight)) + (reset-size))) + (end-refresh-sequence)) (define/private (reset-size) (reset-visual #f) @@ -934,6 +937,8 @@ (let ([savenoloop? noloop?]) (set! noloop? #t) + (maybe-reset-size) + (when (and (x . > . -1) (not fake-x-scroll?)) (when (positive? scroll-width)