..
original commit: 3ab4d1a0be3ed697162ba21de2308c1f0f9bbc0d
This commit is contained in:
parent
8308c203b6
commit
535f23004a
|
@ -888,10 +888,7 @@
|
|||
(rename [super-on-event on-event])
|
||||
(init-field delegate-frame)
|
||||
(inherit get-editor get-dc)
|
||||
(rename [super-on-superwindow-show on-superwindow-show])
|
||||
(define/override (on-superwindow-show shown?)
|
||||
(send (send delegate-frame get-delegatee) set-start/end-para #f #f)
|
||||
(super-on-superwindow-show shown?))
|
||||
|
||||
(define/override (on-event evt)
|
||||
(super-on-event evt)
|
||||
(when (and delegate-frame
|
||||
|
@ -916,7 +913,9 @@
|
|||
(define end-para #f)
|
||||
(define view-x-b (box 0))
|
||||
(define view-width-b (box 0))
|
||||
(inherit paragraph-start-position position-location invalidate-bitmap-cache)
|
||||
(inherit paragraph-start-position paragraph-end-position
|
||||
position-location invalidate-bitmap-cache scroll-to-position
|
||||
get-visible-position-range position-paragraph)
|
||||
|
||||
;; set-start/end-para : (union (#f #f -> void) (number number -> void))
|
||||
(define/public (set-start/end-para _start-para _end-para)
|
||||
|
@ -926,6 +925,22 @@
|
|||
[old-end-para end-para])
|
||||
(set! start-para _start-para)
|
||||
(set! end-para _end-para)
|
||||
|
||||
(when (and start-para end-para)
|
||||
(let-values ([(v-start v-end) (let ([bs (box 0)]
|
||||
[bf (box 0)])
|
||||
(get-visible-position-range bs bf)
|
||||
(values (unbox bs)
|
||||
(unbox bf)))])
|
||||
(let ([v-start-para (position-paragraph v-start)]
|
||||
[v-end-para (position-paragraph v-end)])
|
||||
(cond
|
||||
[(v-start-para . >= . start-para)
|
||||
(scroll-to-position (paragraph-start-position start-para))]
|
||||
[(v-end-para . <= . end-para)
|
||||
(scroll-to-position (paragraph-end-position end-para))]
|
||||
[else (void)]))))
|
||||
|
||||
(when (and old-start-para old-end-para)
|
||||
(let-values ([(x y w h) (get-rectangle old-start-para old-end-para)])
|
||||
(when x
|
||||
|
|
Loading…
Reference in New Issue
Block a user