Index: /branches/ide-1.0/ccl/examples/cocoa-typeout.lisp
===================================================================
--- /branches/ide-1.0/ccl/examples/cocoa-typeout.lisp	(revision 6764)
+++ /branches/ide-1.0/ccl/examples/cocoa-typeout.lisp	(revision 6765)
@@ -65,19 +65,19 @@
 
 (objc:defmethod #/sharedPanel ((self +typeout-panel))
-  (cond (*typeout-panel*)
-        (t
-         (let* ((panel (new-cocoa-window :class self
-                                         :title "Typeout"
-					 :width 600
-                                         :activate nil)))
-	   (ns:with-ns-size (size 600 10000)
-             (#/setMaxSize: panel size)
-             (setf (ns:ns-size-height size) 1)
-             (#/setMinSize: panel size))
-           (let* ((view (make-instance 'typeout-view :with-frame (#/bounds (#/contentView panel)))))
-             (#/setContentView: panel view)
-             (#/setNeedsDisplay: view t)
-             (setf (slot-value panel 'typeout-view) view)
-             (setq *typeout-panel* panel))))))
+   (cond (*typeout-panel*)
+	 (t
+	  (let* ((panel (new-cocoa-window :class self
+					  :title "Typeout"
+					  :width 600
+					  :activate nil)))
+	    (ns:with-ns-size (size 600 10000)
+			     (#/setMaxSize: panel size)
+			     (setf (ns:ns-size-height size) 1)
+			     (#/setMinSize: panel size))
+	    (let* ((view (make-instance 'typeout-view :with-frame (#/bounds (#/contentView panel)))))
+	      (#/setContentView: panel view)
+	      (#/setNeedsDisplay: view t)
+	      (setf (slot-value panel 'typeout-view) view)
+	      (setq *typeout-panel* panel))))))
 
 (objc:defmethod #/init ((self typeout-panel))
@@ -92,5 +92,5 @@
 (defloadvar *typeout-attributes* nil)
 
-(defclass typeout-stream (fundamental-stream)
+(defclass typeout-stream (fundamental-character-output-stream)
   ((text-storage :initform nil :accessor typeout-stream-text-storage)
    (line-number :initform 0 :accessor typeout-stream-line-number)
@@ -106,4 +106,5 @@
 				  :line-break-mode :word)))
     (#/show panel)))
+
 
 
@@ -172,8 +173,24 @@
   (prepare-typeout-stream stream)
   (let* ((the-typeout-view (typeout-panel-typeout-view *typeout-panel*))
-	 (text-storage (slot-value the-typeout-view 'text-storage))
-	 (len (#/length text-storage)))
+         (text-storage (slot-value the-typeout-view 'text-storage))
+         (len (#/length text-storage)))
     (declare (type ns:ns-text-storage text-storage))
+    (#/performSelectorOnMainThread:withObject:waitUntilDone:
+     text-storage
+     (@selector #/beginEditing)
+     +null-ptr+
+     t)
     (#/deleteCharactersInRange: text-storage (ns:make-ns-range 0 len))))
+
+(defmethod stream-force-output ((stream typeout-stream))
+  (let* ((the-typeout-view (typeout-panel-typeout-view *typeout-panel*))
+         (text-storage (slot-value the-typeout-view 'text-storage)))
+    (#/performSelectorOnMainThread:withObject:waitUntilDone:
+     text-storage
+     (@selector #/endEditing)
+     +null-ptr+
+     t)))
+  
+
 
 (defloadvar *typeout-stream* (make-instance 'typeout-stream))
