[mcclim-cvs] CVS mcclim/Backends/CLX
ahefner
ahefner at common-lisp.net
Thu Jul 19 06:55:40 UTC 2007
Update of /project/mcclim/cvsroot/mcclim/Backends/CLX
In directory clnet:/tmp/cvs-serv6318
Modified Files:
medium.lisp
Log Message:
Fix +transparent-ink+ on the CLX backend in a questionable manner.
--- /project/mcclim/cvsroot/mcclim/Backends/CLX/medium.lisp 2007/07/19 06:35:42 1.81
+++ /project/mcclim/cvsroot/mcclim/Backends/CLX/medium.lisp 2007/07/19 06:55:39 1.82
@@ -173,6 +173,11 @@
(setf (xlib:gcontext-clip-mask gc :unsorted) rect-seq)))))
gc)))
+(defmethod medium-gcontext ((medium clx-medium) (ink (eql +transparent-ink+)))
+ (let ((drawable (port-lookup-mirror (port medium) (medium-sheet medium))))
+ (with-slots (gc) medium
+ (or gc (setf gc (xlib:create-gcontext :drawable drawable))))))
+
(defmethod medium-gcontext ((medium clx-medium) (ink (eql +foreground-ink+)))
(medium-gcontext medium (medium-foreground medium)))
@@ -589,8 +594,9 @@
(ink (medium-ink ,medium))
(gc (medium-gcontext ,medium ink)))
line-style ink
- (unwind-protect
- (progn , at body)
+ (unwind-protect
+ (unless (eql ink +transparent-ink+)
+ (progn , at body))
#+ignore(xlib:free-gcontext gc))))))
More information about the Mcclim-cvs
mailing list