surface)))))
(define (surface-ink-flush ink)
- (let ((surface (surface-ink-surface ink))
- (exposed (surface-ink-exposed ink)))
+ (let ((surface (surface-ink-surface ink)))
(cairo-surface-flush surface)
- (if exposed
- (signal-thread-event glib-thread
- (lambda ()
- (%trace2 ";surface-ink-flush copying\n")
- (let ((cr (cairo-create exposed)))
- (cairo-set-source-surface cr surface 0 0)
- (cairo-paint cr)
- (cairo-destroy cr))
- (cairo-surface-flush exposed))))
- (drawing-damage ink)))
+ (with-glib-lock
+ (lambda ()
+ (let ((exposed (surface-ink-exposed ink)))
+ (if exposed
+ (let ((cr (cairo-create exposed)))
+ (cairo-set-source-surface cr surface 0 0)
+ (cairo-paint cr)
+ (cairo-destroy cr)
+ (cairo-surface-flush exposed)))
+ (drawing-damage ink))))))
(define (set-surface-ink-position! ink x y)
(set-fix-rect-position! (fix-ink-extent ink) x y))