- made main-window and client-window transparent and removed

main-window drawing (xsetroot or xsetbg can now be used to set a nice
background)
- changed show-clients to reduce flickering
This commit is contained in:
frese 2003-05-09 16:08:06 +00:00
parent 1f5fb4081f
commit 2928e57803
1 changed files with 19 additions and 7 deletions

View File

@ -72,10 +72,7 @@
(data:titlebars data))
(exit 'deinit-manager))
((draw-main-window)
(set-gc-foreground! dpy gc (black-pixel dpy))
(fill-rectangle* dpy window gc
(clip-rectangle dpy window)))
((draw-main-window) #t)
((fit-windows)
(fit-titlebars wm data)
@ -151,9 +148,9 @@
;; it's a list of a client and it's transients.
(let ((cc (wm-current-client wm))
(top (last clients)))
(map-window dpy (client:client-window top))
(if (and cc (window-mapped? dpy (client:client-window cc)))
(unmap-window dpy (client:client-window cc)))
(map-window dpy (client:client-window top)))))
(unmap-window dpy (client:client-window cc))))))
(else (warn "unhandled switch-wm message" wm msg)))))
@ -285,9 +282,24 @@
(define (fit-client wm client)
(let ((window (client:window client))
(client-window (client:client-window client))
(dpy (wm:dpy wm)))
(if (window-exists? dpy window)
(maximize-window dpy window))))
(begin
(maximize-window dpy window)
;; if the client fills the full client-window, we set the
;; client-window to transparent, so if the client is
;; transparent too, the root-windows pixmap can be seen.
(let ((r1 (clip-rectangle dpy window))
(r2 (clip-rectangle dpy client-window)))
(if (and (equal? (rectangle:width r1) (rectangle:width r2))
(equal? (rectangle:height r1) (rectangle:height r2)))
;; client fill client-window completely, make it transparent
(set-window-background-pixmap! dpy client-window
parent-relative)
;; otherwise make it black
(set-window-background-pixel! dpy client-window
(black-pixel dpy))))))))
(define (fit-client-window wm client)
(let* ((dpy (wm:dpy wm))