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
This commit is contained in:
parent
0a482b6159
commit
bfc9c41358
|
@ -297,6 +297,9 @@
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(unless (and media
|
(unless (and media
|
||||||
(send media get-printing))
|
(send media get-printing))
|
||||||
|
(maybe-reset-size))))))
|
||||||
|
|
||||||
|
(define/private (maybe-reset-size)
|
||||||
(begin-refresh-sequence)
|
(begin-refresh-sequence)
|
||||||
(let-boxes ([w 0]
|
(let-boxes ([w 0]
|
||||||
[h 0])
|
[h 0])
|
||||||
|
@ -304,7 +307,7 @@
|
||||||
(unless (and (= w lastwidth)
|
(unless (and (= w lastwidth)
|
||||||
(= h lastheight))
|
(= h lastheight))
|
||||||
(reset-size)))
|
(reset-size)))
|
||||||
(end-refresh-sequence))))))
|
(end-refresh-sequence))
|
||||||
|
|
||||||
(define/private (reset-size)
|
(define/private (reset-size)
|
||||||
(reset-visual #f)
|
(reset-visual #f)
|
||||||
|
@ -934,6 +937,8 @@
|
||||||
(let ([savenoloop? noloop?])
|
(let ([savenoloop? noloop?])
|
||||||
(set! noloop? #t)
|
(set! noloop? #t)
|
||||||
|
|
||||||
|
(maybe-reset-size)
|
||||||
|
|
||||||
(when (and (x . > . -1)
|
(when (and (x . > . -1)
|
||||||
(not fake-x-scroll?))
|
(not fake-x-scroll?))
|
||||||
(when (positive? scroll-width)
|
(when (positive? scroll-width)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user