cocoa: try to fix problem with drifting gc-blit window
original commit: 510c3f8a3362fe67979e805910b90c5bd440f586
This commit is contained in:
parent
9fa0057c3b
commit
93b21b51b1
|
@ -404,6 +404,11 @@
|
|||
(super show-children)
|
||||
(resume-all-reg-blits))
|
||||
|
||||
(define/override (fixup-locations-children)
|
||||
;; in atomic mode
|
||||
(suspend-all-reg-blits)
|
||||
(resume-all-reg-blits))
|
||||
|
||||
(define/private (do-set-size x y w h)
|
||||
(when (pair? blits)
|
||||
(atomically (suspend-all-reg-blits)))
|
||||
|
|
|
@ -319,6 +319,9 @@
|
|||
(define/override (show-children)
|
||||
(when saved-child
|
||||
(send saved-child show-children)))
|
||||
(define/override (fixup-locations-children)
|
||||
(when saved-child
|
||||
(send saved-child fixup-locations-children)))
|
||||
|
||||
(define/override (children-accept-drag on?)
|
||||
(when saved-child
|
||||
|
@ -532,3 +535,8 @@
|
|||
(make-NSPoint x (- (NSSize-height (NSRect-size f)) y)))
|
||||
belowWindowWithWindowNumber: #:type _NSInteger 0)])
|
||||
(atomically (hash-ref all-windows n #f))))
|
||||
|
||||
(set-fixup-window-locations!
|
||||
(lambda ()
|
||||
(for ([f (in-hash-values all-windows)])
|
||||
(send f fixup-locations-children))))
|
||||
|
|
|
@ -40,6 +40,10 @@
|
|||
(define/override (show-children)
|
||||
(for ([child (in-list children)])
|
||||
(send child show-children)))
|
||||
|
||||
(define/override (fixup-locations-children)
|
||||
(for ([child (in-list children)])
|
||||
(send child fixup-locations-children)))
|
||||
|
||||
(define/override (paint-children)
|
||||
(for ([child (in-list children)])
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
set-eventspace-hook!
|
||||
set-front-hook!
|
||||
set-menu-bar-hooks!
|
||||
set-fixup-window-locations!
|
||||
post-dummy-event
|
||||
|
||||
try-to-sync-refresh)
|
||||
|
@ -58,8 +59,11 @@
|
|||
(let ([priviledged-custodian ((get-ffi-obj 'scheme_make_custodian #f (_fun _pointer -> _scheme)) #f)])
|
||||
(parameterize ([current-custodian priviledged-custodian])
|
||||
(thread (lambda () (sleep 5.0)))))
|
||||
;; FIXME: Also need to reset blit windows, since OS may move them incorrectly
|
||||
(void)])
|
||||
;; Also need to reset blit windows, since OS may move them incorrectly:
|
||||
(fixup-window-locations)])
|
||||
|
||||
(define fixup-window-locations void)
|
||||
(define (set-fixup-window-locations! f) (set! fixup-window-locations f))
|
||||
|
||||
;; In case we were started in an executable without a bundle,
|
||||
;; explicitly register with the dock so the application can receive
|
||||
|
|
|
@ -379,6 +379,8 @@
|
|||
(focus-is-on #f))
|
||||
(define/public (show-children)
|
||||
(void))
|
||||
(define/public (fixup-locations-children)
|
||||
(void))
|
||||
(define/public (fix-dc)
|
||||
(void))
|
||||
(define/public (paint-children)
|
||||
|
|
Loading…
Reference in New Issue
Block a user