Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion gui-lib/mred/private/wx/gtk/gcwin.rkt
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@
(define-gdk gdk_display_flush _fpointer)

(define-gdk gdk_window_show (_fun _GdkWindow -> _void))
(define-gdk gdk_window_destroy (_fun _GdkWindow -> _void))

;; Gtk2
(define-gdk gdk_draw_pixbuf _fpointer
Expand Down Expand Up @@ -161,7 +162,7 @@
(define (free-gc-window win)
(cond
[use-x11? (XDestroyWindow (car win) (cdr win))]
[else (g_object_unref win)]))
[else (gdk_window_destroy win)]))

(define (make-draw win gc-bitmap w h)
(cond
Expand Down
25 changes: 14 additions & 11 deletions gui-test/tests/gracket/gc-blits.rkt
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,18 @@
(define off (make-bitmap w h))
(send (send on make-dc) draw-rectangle 5 5 (- w 10) (- h 10))

(send
(for/fold ([prev-f #f]) ([i (in-range 10)])
(define f (new frame% [label "GC Blit"] [width 100] [height 100]))
(define c (new canvas% [parent f]))
(register-collecting-blit c 0 0 w h on off)
(send f show #t)
(collect-garbage)
(yield (system-idle-evt))
(when prev-f (send prev-f show #f))
f)
show #f)
(define final
(for/fold ([prev #f]) ([i (in-range 10)])
(define f (new frame% [label "GC Blit"] [width 100] [height 100]))
(define c (new canvas% [parent f]))
(register-collecting-blit c 0 0 w h on off)
(send f show #t)
(collect-garbage)
(yield (system-idle-evt))
(when prev
(unregister-collecting-blit (cdr prev))
(send (car prev) show #f))
(cons f c)))

(unregister-collecting-blit (cdr final))
(send (car final) show #f)
Loading