[climacs-devel] Incremental redisplay cursor fix.

Nyef nyef at sc.am
Mon Dec 27 17:39:41 UTC 2004


Hello all.

Attached is a patch to fix the cursor display problem with incremental 
redisplay. This appears to work, except for the beginning of lines other 
than the second one.

-- 
--Alastair Bridgewater
-------------- next part --------------
Index: syntax.lisp
===================================================================
RCS file: /project/climacs/cvsroot/climacs/syntax.lisp,v
retrieving revision 1.9
diff -u -r1.9 syntax.lisp
--- syntax.lisp	27 Dec 2004 16:47:45 -0000	1.9
+++ syntax.lisp	27 Dec 2004 17:37:39 -0000
@@ -163,10 +163,13 @@
 	     (multiple-value-bind (x y) (stream-cursor-position pane)
 	       (setf cursor-x x
 		     cursor-y y)))
-	   (draw-line* pane
-		       cursor-x (- cursor-y (* 0.2 height))
-		       cursor-x (+ cursor-y (* 0.8 height))
-		       :ink +red+))))))
+	   (maybe-updating-output (pane :all-new t :fixed-position t)
+	      (draw-line* pane
+			  ;; cursors with odd x-positions were invisible
+			  ;; so we strip off the low bit to make them even.
+			  (logand -2 cursor-x) (- cursor-y (* 0.2 height))
+			  (logand -2 cursor-x) (+ cursor-y (* 0.8 height))
+			  :ink +red+)))))))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;


More information about the climacs-devel mailing list