gtk: fix problem wth window freeze & thaw

Closes PR 12496

Merge to 5.2.1
(cherry picked from commit 484803a896)
This commit is contained in:
Matthew Flatt 2012-01-19 16:19:38 -07:00 committed by Ryan Culpepper
parent 5686f0e758
commit b05bfd0acf

View File

@ -716,6 +716,7 @@
(define-gdk gdk_window_thaw_updates (_fun _GdkWindow -> _void))
(define-gdk gdk_window_invalidate_rect (_fun _GdkWindow _pointer _gboolean -> _void))
(define-gdk gdk_window_process_all_updates (_fun -> _void))
(define-gdk gdk_window_ensure_native (_fun _GdkWindow -> _gboolean))
(define (win-box-valid? win-box)
(mcar win-box))
@ -734,6 +735,11 @@
(lambda (win-box)
(let ([win (mcar win-box)])
(and win
;; The freeze/thaw state is actually with the window's
;; implementation, so force a native implementation of the
;; window to try to avoid it changing out from underneath
;; us between the freeze and thaw actions.
(gdk_window_ensure_native win)
(begin
(gdk_window_freeze_updates win)
(set-mcdr! win-box (add1 (mcdr win-box)))