updated constructor-calls to specify wheather the X-Lib Objects
should be freed. implemented the use of XGetGeometry.
This commit is contained in:
parent
f1d4077123
commit
536e355a45
|
@ -1,22 +1,25 @@
|
|||
;(define (drawable-abstraction pixmap-fun window-fun)
|
||||
; (lambda (drawable)
|
||||
; (cond
|
||||
; ((pixmap? drawable) (pixmap-fun drawable))
|
||||
; ((window? drawable) (window-fun drawable))
|
||||
; (else (error "expected a drawable object" drawable)))))
|
||||
;; defined in window.c
|
||||
(import-lambda-definition %get-geometry (Xdisplay Xdrawable)
|
||||
"Get_Geometry")
|
||||
|
||||
(define (get-geometry drawable)
|
||||
(let ((display (drawable-display drawable))
|
||||
(v (%get-geometry (display-Xdisplay display)
|
||||
(drawable-Xobject drawable))))
|
||||
;; wrap the root-window
|
||||
(vector-set! v 0 (make-window (vector-ref v 0) display #f))
|
||||
v))
|
||||
|
||||
(define (make-geometry-getter num)
|
||||
(lambda (drawable)
|
||||
(vector-ref (get-geometry drawable) num)))
|
||||
|
||||
(define drawable-root (make-geometry-getter 0))
|
||||
(define drawable-x (make-geometry-getter 1))
|
||||
(define drawable-y (make-geometry-getter 2))
|
||||
(define drawable-width (make-geometry-getter 3))
|
||||
(define drawable-height (make-geometry-getter 4))
|
||||
(define drawable-border-width (make-geometry-getter 5))
|
||||
(define drawable-depth (make-geometry-getter 6))
|
||||
|
||||
;(define drawable-display (drawable-abstraction pixmap-display window-display))
|
||||
;(define drawable-Xobject (drawable-abstraction pixmap-Xpixmap window-Xwindow))
|
||||
|
||||
;; not so sure with pixmap-root, not found in Elk.
|
||||
(define drawable-root (drawable-abstraction (lambda (pixm)
|
||||
(display-default-root-window
|
||||
(pixmap-display pixm)))
|
||||
window-root))
|
||||
(define drawable-x (drawable-abstraction pixmap-x window-x))
|
||||
(define drawable-y (drawable-abstraction pixmap-y window-y))
|
||||
(define drawable-width (drawable-abstraction pixmap-width window-width))
|
||||
(define drawable-height (drawable-abstraction pixmap-height window-height))
|
||||
(define drawable-border-width (drawable-abstraction pixmap-border-width
|
||||
window-border-width))
|
||||
(define drawable-depth (drawable-abstraction pixmap-depth window-depth))
|
||||
|
|
Loading…
Reference in New Issue