restore auto-scroll canvases; fix text-rotation bug
original commit: cc55bd7e93a521456d5b4cd17a061df4a447319d
This commit is contained in:
parent
a13829397f
commit
ad1eed5071
|
@ -264,7 +264,10 @@
|
||||||
|
|
||||||
(define/public (fix-dc [refresh? #t])
|
(define/public (fix-dc [refresh? #t])
|
||||||
(when (dc . is-a? . dc%)
|
(when (dc . is-a? . dc%)
|
||||||
(send dc reset-backing-retained))
|
(send dc reset-backing-retained)
|
||||||
|
(send dc set-auto-scroll
|
||||||
|
(if auto-scroll? (scroll-pos h-scroller) 0)
|
||||||
|
(if auto-scroll? (scroll-pos v-scroller) 0)))
|
||||||
(when refresh? (refresh)))
|
(when refresh? (refresh)))
|
||||||
|
|
||||||
(define/override (get-client-size xb yb)
|
(define/override (get-client-size xb yb)
|
||||||
|
|
|
@ -29,7 +29,8 @@
|
||||||
(class (dc-mixin bitmap-dc-backend%)
|
(class (dc-mixin bitmap-dc-backend%)
|
||||||
(inherit call-with-cr-lock
|
(inherit call-with-cr-lock
|
||||||
internal-get-bitmap
|
internal-get-bitmap
|
||||||
internal-set-bitmap)
|
internal-set-bitmap
|
||||||
|
reset-cr)
|
||||||
|
|
||||||
(super-new)
|
(super-new)
|
||||||
|
|
||||||
|
@ -91,6 +92,7 @@
|
||||||
(internal-set-bitmap bm #t))
|
(internal-set-bitmap bm #t))
|
||||||
(let ([cr (super get-cr)])
|
(let ([cr (super get-cr)])
|
||||||
(set! retained-cr cr)
|
(set! retained-cr cr)
|
||||||
|
(reset-cr cr)
|
||||||
cr))))
|
cr))))
|
||||||
|
|
||||||
(define/override (release-cr cr)
|
(define/override (release-cr cr)
|
||||||
|
|
|
@ -312,15 +312,13 @@
|
||||||
|
|
||||||
(define/private (reset-dc)
|
(define/private (reset-dc)
|
||||||
(send dc reset-backing-retained)
|
(send dc reset-backing-retained)
|
||||||
(if auto-scroll?
|
(send dc set-auto-scroll
|
||||||
(send dc reset-dc
|
|
||||||
(if virtual-width
|
(if virtual-width
|
||||||
(gtk_adjustment_get_value hscroll-adj)
|
(gtk_adjustment_get_value hscroll-adj)
|
||||||
0)
|
0)
|
||||||
(if virtual-height
|
(if virtual-height
|
||||||
(gtk_adjustment_get_value vscroll-adj)
|
(gtk_adjustment_get_value vscroll-adj)
|
||||||
0))
|
0)))
|
||||||
(void)))
|
|
||||||
|
|
||||||
(define/override (internal-on-client-size w h)
|
(define/override (internal-on-client-size w h)
|
||||||
(reset-dc))
|
(reset-dc))
|
||||||
|
|
|
@ -33,29 +33,7 @@
|
||||||
(values (unbox xb) (unbox yb))))
|
(values (unbox xb) (unbox yb))))
|
||||||
|
|
||||||
(define/override (queue-backing-flush)
|
(define/override (queue-backing-flush)
|
||||||
(send canvas queue-backing-flush))
|
(send canvas queue-backing-flush))))
|
||||||
|
|
||||||
(define suspend-count 0)
|
|
||||||
(define req #f)
|
|
||||||
|
|
||||||
(define/override (suspend-flush)
|
|
||||||
(as-entry
|
|
||||||
(lambda ()
|
|
||||||
#;
|
|
||||||
(when (zero? suspend-count)
|
|
||||||
(set! req (request-flush-delay (send canvas get-cocoa-window))))
|
|
||||||
(set! suspend-count (add1 suspend-count))
|
|
||||||
(super suspend-flush))))
|
|
||||||
|
|
||||||
(define/override (resume-flush)
|
|
||||||
(as-entry
|
|
||||||
(lambda ()
|
|
||||||
(set! suspend-count (sub1 suspend-count))
|
|
||||||
#;
|
|
||||||
(when (and (zero? suspend-count) req)
|
|
||||||
(cancel-flush-delay req)
|
|
||||||
(set! req #f))
|
|
||||||
(super resume-flush))))))
|
|
||||||
|
|
||||||
(define (do-backing-flush canvas dc win)
|
(define (do-backing-flush canvas dc win)
|
||||||
(send dc on-backing-flush
|
(send dc on-backing-flush
|
||||||
|
|
|
@ -967,7 +967,7 @@
|
||||||
(send dc clear)
|
(send dc clear)
|
||||||
|
|
||||||
(send dc set-alpha current-alpha)
|
(send dc set-alpha current-alpha)
|
||||||
(send dc set-rotation current-rotation)
|
(send dc set-rotation (- current-rotation))
|
||||||
(send dc set-initial-matrix (if current-skew?
|
(send dc set-initial-matrix (if current-skew?
|
||||||
(vector 1 0 0.2 1 3 0)
|
(vector 1 0 0.2 1 3 0)
|
||||||
(vector 1 0 0 1 0 0)))
|
(vector 1 0 0 1 0 0)))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user