+ fixed a bug in the destroy functions and finalizers.
This commit is contained in:
parent
1bf411918c
commit
d4ea951ebf
|
@ -69,8 +69,9 @@
|
||||||
(lambda (return)
|
(lambda (return)
|
||||||
(table-walk (lambda (key value)
|
(table-walk (lambda (key value)
|
||||||
(let ((color (weak-pointer-ref value)))
|
(let ((color (weak-pointer-ref value)))
|
||||||
(if (equal? (list r g b)
|
;; color can be #f for some strange reasons
|
||||||
(extract-rgb-values color))
|
(if (and color (equal? (list r g b)
|
||||||
|
(extract-rgb-values color)))
|
||||||
(return color))))
|
(return color))))
|
||||||
*weak-color-list*)
|
*weak-color-list*)
|
||||||
#f)))
|
#f)))
|
||||||
|
|
|
@ -48,8 +48,6 @@
|
||||||
(let ((Xdisplay (display-Xdisplay display)))
|
(let ((Xdisplay (display-Xdisplay display)))
|
||||||
(if (integer? Xdisplay)
|
(if (integer? Xdisplay)
|
||||||
(begin
|
(begin
|
||||||
(if (display-after-function display)
|
|
||||||
((display-after-function display) display))
|
|
||||||
(display-list-delete! display)
|
(display-list-delete! display)
|
||||||
(%close-display Xdisplay)
|
(%close-display Xdisplay)
|
||||||
(display-set-Xdisplay! display 'already-closed)))))
|
(display-set-Xdisplay! display 'already-closed)))))
|
||||||
|
|
|
@ -59,6 +59,7 @@
|
||||||
(Xwindow (window-Xwindow window)))
|
(Xwindow (window-Xwindow window)))
|
||||||
(if (integer? Xwindow)
|
(if (integer? Xwindow)
|
||||||
(begin
|
(begin
|
||||||
|
(window-list-delete! window)
|
||||||
(%destroy-window Xdisplay Xwindow)
|
(%destroy-window Xdisplay Xwindow)
|
||||||
(window-set-Xwindow! window 'already-destroyed)))))
|
(window-set-Xwindow! window 'already-destroyed)))))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue