[mcclim-devel] [patch] make goatee search & execute frame commands by gesture

Andreas Fuchs asf at boinkor.net
Sun Feb 26 15:45:24 UTC 2006


Today, Andreas Fuchs <asf at boinkor.net> wrote:
> Index: Goatee/editing-stream.lisp
> ===================================================================

Hrmpf. That patch was missing a vital part; here's the complete,
corrected patch (which now redisplays the application-frame's panes
like the command loop does):

Index: Goatee/editing-stream.lisp
===================================================================
RCS file: /project/mcclim/cvsroot/mcclim/Goatee/editing-stream.lisp,v
retrieving revision 1.21
diff -u -r1.21 editing-stream.lisp
--- Goatee/editing-stream.lisp	22 Feb 2005 14:00:18 -0000	1.21
+++ Goatee/editing-stream.lisp	26 Feb 2006 15:42:44 -0000
@@ -160,7 +160,20 @@
     (return-from stream-process-gesture gesture))
   (let ((area (area stream))
 	(snapshot (snapshot stream)))
-    (execute-gesture-command gesture area *simple-area-gesture-table*)
+    (unless (execute-gesture-command gesture area *simple-area-gesture-table*)
+      (when (and (boundp '*application-frame*) (application-frame-p *application-frame*))
+        (handler-case
+            (prog1
+              (execute-frame-command *application-frame*
+                                     (lookup-keystroke-command-item
+                                      gesture
+                                      (frame-command-table *application-frame*)))
+              (redisplay-frame-panes *application-frame*))
+          (command-not-present ()
+            ;; gestures with modifiers will send one or several
+            ;; (modifier down) events. These will probably not be
+            ;; found, so ignore them.
+            nil))))
     (make-input-editing-stream-snapshot snapshot area)
     (let ((first-mismatch (mismatch (stream-input-buffer snapshot)
 				    (stream-input-buffer stream))))
Index: Goatee/goatee-command.lisp
===================================================================
RCS file: /project/mcclim/cvsroot/mcclim/Goatee/goatee-command.lisp,v
retrieving revision 1.20
diff -u -r1.20 goatee-command.lisp
--- Goatee/goatee-command.lisp	5 Dec 2005 22:40:01 -0000	1.20
+++ Goatee/goatee-command.lisp	26 Feb 2006 15:42:44 -0000
@@ -94,7 +94,8 @@
 	      (funcall command :input-gesture gesture)
 	      (setf *last-command* command)
 	      (setf (last-command area) command)))
-	  (redisplay-area area)))))
+	  (redisplay-area area)
+          t))))
 
 ;; Utilities for the word movement commands
 

Cheers,
-- 
Andreas Fuchs, (http://|im:asf@|mailto:asf@)boinkor.net, antifuchs



More information about the mcclim-devel mailing list