- added destroyed? component to the window-type for a better
recognition of window-destroyal. (should be done with all types)
This commit is contained in:
		
							parent
							
								
									2db54b1c37
								
							
						
					
					
						commit
						0043252da4
					
				| 
						 | 
				
			
			@ -1,10 +1,11 @@
 | 
			
		|||
;; the window-datatype ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
			
		||||
 | 
			
		||||
(define-record-type window :window
 | 
			
		||||
  (really-make-window tag Xwindow display) 
 | 
			
		||||
  (really-make-window tag Xwindow display destroyed?) 
 | 
			
		||||
  window? 
 | 
			
		||||
  (tag window-tag window-set-tag!)
 | 
			
		||||
  (Xwindow real-window-Xwindow window-set-Xwindow!)
 | 
			
		||||
  (destroyed? window-destroyed? window-set-destroyed?!)
 | 
			
		||||
  (display window-display window-set-display!))
 | 
			
		||||
 | 
			
		||||
(define (window-Xwindow window)
 | 
			
		||||
| 
						 | 
				
			
			@ -22,7 +23,7 @@
 | 
			
		|||
  (let ((maybe-window (window-list-find Xwindow)))
 | 
			
		||||
    (if maybe-window
 | 
			
		||||
	maybe-window
 | 
			
		||||
	(let ((window (really-make-window #f Xwindow display)))
 | 
			
		||||
	(let ((window (really-make-window #f Xwindow display #f)))
 | 
			
		||||
	  (if finalize?
 | 
			
		||||
	      (add-finalizer! window destroy-window)
 | 
			
		||||
	      (add-finalizer! window window-list-delete!))
 | 
			
		||||
| 
						 | 
				
			
			@ -57,11 +58,10 @@
 | 
			
		|||
(define (destroy-window window)
 | 
			
		||||
  (let ((Xdisplay (display-Xdisplay (window-display window)))
 | 
			
		||||
	(Xwindow (window-Xwindow window)))
 | 
			
		||||
    (if (integer? Xwindow)
 | 
			
		||||
	(begin
 | 
			
		||||
    (window-list-delete! window)
 | 
			
		||||
	  (%destroy-window Xdisplay Xwindow)
 | 
			
		||||
	  (window-set-Xwindow! window 'already-destroyed)))))
 | 
			
		||||
    (if (not (window-destroyed? window))
 | 
			
		||||
	(%destroy-window Xdisplay Xwindow))
 | 
			
		||||
    (window-set-destroyed?! window #t)))
 | 
			
		||||
 | 
			
		||||
(import-lambda-definition %destroy-window (Xdisplay Xwindow)
 | 
			
		||||
  "scx_Destroy_Window")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue