[mcclim-cvs] CVS mcclim

thenriksen thenriksen at common-lisp.net
Wed Jan 30 21:21:44 UTC 2008


Update of /project/mcclim/cvsroot/mcclim
In directory clnet:/tmp/cvs-serv8469

Modified Files:
	input-editing-drei.lisp input-editing.lisp panes.lisp 
Log Message:
WITH-INPUT-EDITING now works really well with Drei.


--- /project/mcclim/cvsroot/mcclim/input-editing-drei.lisp	2008/01/30 17:08:01	1.8
+++ /project/mcclim/cvsroot/mcclim/input-editing-drei.lisp	2008/01/30 21:21:43	1.9
@@ -154,18 +154,23 @@
 				      initial-contents
 				      class)
   (let ((editing-stream (make-instance class
-                                       :stream stream
-                                       :initial-contents initial-contents)))
+                         :stream stream)))
+    (if (stringp initial-contents)
+        (replace-input editing-stream initial-contents)
+        (presentation-replace-input editing-stream
+                                    (first initial-contents)
+                                    (second initial-contents)
+                                    (stream-default-view editing-stream)))
     (unwind-protect
          (loop
-            (block rescan
-              (handler-bind ((rescan-condition
-                              #'(lambda (c)
-                                  (declare (ignore c))
-                                  (reset-scan-pointer editing-stream)
-                                  (return-from rescan nil))))
-                (return-from invoke-with-input-editing
-                  (funcall continuation editing-stream)))))
+          (block rescan
+            (handler-bind ((rescan-condition
+                            #'(lambda (c)
+                                (declare (ignore c))
+                                (reset-scan-pointer editing-stream)
+                                (return-from rescan nil))))
+              (return-from invoke-with-input-editing
+                (funcall continuation editing-stream)))))
       (finalize editing-stream input-sensitizer))))
 
 (defmethod immediate-rescan ((stream standard-input-editing-stream))
--- /project/mcclim/cvsroot/mcclim/input-editing.lisp	2008/01/30 15:58:14	1.58
+++ /project/mcclim/cvsroot/mcclim/input-editing.lisp	2008/01/30 21:21:44	1.59
@@ -55,9 +55,7 @@
     (fmakunbound 'interactive-stream-p))
   (defgeneric interactive-stream-p (stream)
     (:method (stream)
-      (cl:interactive-stream-p stream))
-    (:method ((stream clim-stream-pane))
-      t)))
+      (cl:interactive-stream-p stream))))
 
 ;;; These helper functions take the arguments of ACCEPT so that they
 ;;; can be used directly by ACCEPT.
--- /project/mcclim/cvsroot/mcclim/panes.lisp	2008/01/30 11:48:40	1.188
+++ /project/mcclim/cvsroot/mcclim/panes.lisp	2008/01/30 21:21:44	1.189
@@ -27,7 +27,7 @@
 ;;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 ;;; Boston, MA  02111-1307  USA.
 
-;;; $Id: panes.lisp,v 1.188 2008/01/30 11:48:40 thenriksen Exp $
+;;; $Id: panes.lisp,v 1.189 2008/01/30 21:21:44 thenriksen Exp $
 
 (in-package :clim-internals)
 
@@ -2528,6 +2528,9 @@
    "This class implements a pane that supports the CLIM graphics,
     extended input and output, and output recording protocols."))
 
+(defmethod interactive-stream-p ((stream clim-stream-pane))
+  t)
+
 (defun invoke-display-function (frame pane)
   (let ((display-function (pane-display-function pane)))
     (cond ((consp display-function)




More information about the Mcclim-cvs mailing list