Update of /project/climacs/cvsroot/climacs In directory common-lisp.net:/tmp/cvs-serv15864
Modified Files: gui.lisp pane.lisp Log Message: Add an :after method on (setf syntax) for buffers; this updates the top and bottom marks correctly
Date: Wed Jun 22 20:35:59 2005 Author: bmastenbrook
Index: climacs/gui.lisp diff -u climacs/gui.lisp:1.146 climacs/gui.lisp:1.147 --- climacs/gui.lisp:1.146 Sat Jun 18 04:01:56 2005 +++ climacs/gui.lisp Wed Jun 22 20:35:59 2005 @@ -904,13 +904,6 @@ (psetf (offset (mark pane)) (offset (point pane)) (offset (point pane)) (offset (mark pane)))))
-(defun set-syntax (syntax) - (let* ((pane (current-window)) - (buffer (buffer pane))) - (setf (syntax buffer) syntax) - (setf (offset (low-mark buffer)) 0 - (offset (high-mark buffer)) (size buffer)))) - (define-named-command com-set-syntax () (let* ((pane (current-window)) (buffer (buffer pane))) @@ -919,9 +912,7 @@ (progn (beep) (display-message "No such syntax") (return-from com-set-syntax nil))) - :buffer (buffer (point pane)))) - (setf (offset (low-mark buffer)) 0 - (offset (high-mark buffer)) (size buffer)))) + :buffer (buffer (point pane))))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;
Index: climacs/pane.lisp diff -u climacs/pane.lisp:1.26 climacs/pane.lisp:1.27 --- climacs/pane.lisp:1.26 Mon May 9 16:47:45 2005 +++ climacs/pane.lisp Wed Jun 22 20:35:59 2005 @@ -210,6 +210,10 @@ 'basic-syntax :buffer (implementation buffer)) point (clone-mark (low-mark buffer) :right))))
+(defmethod (setf syntax) :after (syntax (buffer climacs-buffer)) + (setf (offset (low-mark buffer)) 0 + (offset (high-mark buffer)) (size buffer))) + (defclass climacs-pane (application-pane) ((buffer :initform (make-instance 'climacs-buffer) :accessor buffer) (point :initform nil :initarg :point :accessor point) @@ -250,7 +254,7 @@ (with-slots (buffer top bot scan) pane (setf top (clone-mark (low-mark buffer) :left) bot (clone-mark (high-mark buffer) :right))) - (setf (stream-default-view pane) (make-instance 'climacs-textual-view)) + (setf (stream-default-view pane) (make-instance 'climacs-textual-view)) (with-slots (space-width tab-width) (stream-default-view pane) (let* ((medium (sheet-medium pane)) (style (medium-text-style medium)))