? ChangeLog
? Backends/Canvas
? Backends/Null/frame-manager.fasl
? Backends/Null/graft.fasl
? Backends/Null/medium.fasl
? Backends/Null/package.fasl
? Backends/Null/port.fasl
? Drei/abbrev.fasl
? Drei/base.fasl
? Drei/basic-commands.fasl
? Drei/buffer-streams.fasl
? Drei/buffer.fasl
? Drei/core-commands.fasl
? Drei/core.fasl
? Drei/delegating-buffer.fasl
? Drei/drawing-options.fasl
? Drei/drei-clim.fasl
? Drei/drei-redisplay.fasl
? Drei/drei.fasl
? Drei/editing.fasl
? Drei/fundamental-syntax.fasl
? Drei/input-editor.fasl
? Drei/kill-ring.fasl
? Drei/lisp-syntax-commands.fasl
? Drei/lisp-syntax-swank.fasl
? Drei/lisp-syntax-swine.fasl
? Drei/lisp-syntax.fasl
? Drei/lr-syntax.fasl
? Drei/misc-commands.fasl
? Drei/modes.fasl
? Drei/motion.fasl
? Drei/packages.fasl
? Drei/rectangle.fasl
? Drei/search-commands.fasl
? Drei/syntax.fasl
? Drei/targets.fasl
? Drei/undo.fasl
? Drei/views.fasl
? Drei/Persistent/binseq-package.fasl
? Drei/Persistent/binseq.fasl
? Drei/Persistent/binseq2.fasl
? Drei/Persistent/obinseq.fasl
? Drei/Persistent/persistent-buffer.fasl
? Drei/Persistent/persistent-undo.fasl
? Drei/cl-automaton/automaton-package.fasl
? Drei/cl-automaton/automaton.fasl
? Drei/cl-automaton/eqv-hash.fasl
? Drei/cl-automaton/regexp.fasl
? Drei/cl-automaton/state-and-transition.fasl
? ESA/colors.fasl
? ESA/esa-buffer.fasl
? ESA/esa-command-parser.fasl
? ESA/esa-io.fasl
? ESA/esa.fasl
? ESA/packages.fasl
? ESA/utils.fasl
? Examples/ChangeLog
? Extensions/tab-layout.fasl
? Spec/src/clim.aux
? Spec/src/clim.dvi
? Spec/src/clim.idx
? Spec/src/clim.log
? Spec/src/clim.out
? Spec/src/clim.pdf
? Spec/src/clim.toc
? Spec/src/spec-macros.aux
Index: mcclim.asd
===================================================================
RCS file: /project/mcclim/cvsroot/mcclim/mcclim.asd,v
retrieving revision 1.84
diff -u -r1.84 mcclim.asd
--- mcclim.asd	16 May 2008 14:05:07 -0000	1.84
+++ mcclim.asd	23 Aug 2008 13:29:14 -0000
@@ -213,6 +213,18 @@
              (:file "afm" :depends-on ("class" "paper" "font" "package"))
              (:file "standard-metrics" :depends-on ("font" "package"))))))
 
+(defsystem :clim-canvas
+  :depends-on (:clim-basic)
+  :components
+  ((:module "Backends/Canvas"
+            :pathname #.(make-pathname :directory '(:relative "Backends" "Canvas"))
+            :components
+            ((:file "package")
+             (:file "class" :depends-on ("package"))
+	     (:file "graphics-state" :depends-on ("class" "package"))
+             (:file "graphics" :depends-on ("class" "graphics-state" "package"))
+             (:file "sheet" :depends-on ("class" "graphics" "package"))))))
+
 (defsystem :clim-core
   :depends-on (:clim-basic :goatee-core :clim-postscript)
   :components ((:file "text-formatting")
Index: medium.lisp
===================================================================
RCS file: /project/mcclim/cvsroot/mcclim/medium.lisp,v
retrieving revision 1.64
diff -u -r1.64 medium.lisp
--- medium.lisp	21 Jan 2008 01:26:42 -0000	1.64
+++ medium.lisp	23 Aug 2008 13:29:15 -0000
@@ -420,18 +420,12 @@
 ;; with-sheet-medium-bound moved to output.lisp. --GB
 
 (defmacro with-pixmap-medium ((medium pixmap) &body body)
-  (let ((old-medium (gensym))
-	(old-pixmap (gensym)))
+  (let ((old-medium (gensym)))
     `(let* ((,old-medium (pixmap-medium ,pixmap))
-	    (,medium (or ,old-medium (make-medium (port ,pixmap) ,pixmap)))
-	    (,old-pixmap (medium-sheet ,medium)))
+	    (,medium (or ,old-medium (make-medium (port ,pixmap) ,pixmap))))
        (setf (pixmap-medium ,pixmap) ,medium)
-       (setf (%medium-sheet ,medium) ,pixmap) ;is medium a basic medium? --GB
-       (unwind-protect
-	   (progn
-	     ,@body)
-	 (setf (pixmap-medium ,pixmap) ,old-medium)
-	 (setf (%medium-sheet ,medium) ,old-pixmap)))))
+       (setf (%medium-sheet ,medium) ,pixmap)
+       ,@body)))
 
 ;;; Medium Device functions
 
Index: Backends/CLX/port.lisp
===================================================================
RCS file: /project/mcclim/cvsroot/mcclim/Backends/CLX/port.lisp,v
retrieving revision 1.134
diff -u -r1.134 port.lisp
--- Backends/CLX/port.lisp	13 May 2008 03:04:39 -0000	1.134
+++ Backends/CLX/port.lisp	23 Aug 2008 13:29:16 -0000
@@ -1066,6 +1066,11 @@
     pixmap))
 
 (defmethod port-deallocate-pixmap ((port clx-port) pixmap)
+  (let ((medium (climi::pixmap-medium pixmap)))
+    (when medium
+      (with-slots (gc) medium
+        (when gc
+          (xlib:free-gcontext gc)))))
   (when (port-lookup-mirror port pixmap)
     (destroy-mirror port pixmap)))
 
