fix gtk canvas reset

This commit is contained in:
Matthew Flatt 2010-07-29 09:36:01 -06:00
parent c244a6106a
commit b027bc3bc3
2 changed files with 9 additions and 11 deletions

View File

@ -204,12 +204,12 @@
(gtk_widget_queue_draw client-gtk)) (gtk_widget_queue_draw client-gtk))
(define/public (reset-child-dcs) (define/public (reset-child-dcs)
(send dc reset-dc #t)) (send dc reset-dc))
(define/override (maybe-register-as-child parent on?) (define/override (maybe-register-as-child parent on?)
(register-as-child parent on?)) (register-as-child parent on?))
(define/override (internal-on-client-size w h) (define/override (internal-on-client-size w h)
(send dc reset-dc #f)) (send dc reset-dc))
(define/override (on-client-size w h) (define/override (on-client-size w h)
(let ([xb (box 0)] (let ([xb (box 0)]
[yb (box 0)]) [yb (box 0)])

View File

@ -31,15 +31,13 @@
(set! c (gdk_cairo_create w)) (set! c (gdk_cairo_create w))
c)))) c))))
(define/public (reset-dc force?) (define/public (reset-dc)
(when (or force? ;; FIXME: ensure that the dc is not in use
(eq? 'windows (system-type))) (as-entry
;; FIXME: ensure that the dc is not in use (lambda ()
(as-entry (when c
(lambda () (cairo_destroy c)
(when c (set! c #f)))))
(cairo_destroy c)
(set! c #f))))))
(define/override (get-size) (define/override (get-size)
(let-values ([(w h) (get-client-size)]) (let-values ([(w h) (get-client-size)])