From xemacs-m  Thu Feb  6 17:33:55 1997
Received: from omega.intranet.com (omega.intranet.com [192.148.106.20])
	by xemacs.org (8.8.5/8.8.5) with SMTP id RAA21689
	for <xemacs-beta@xemacs.org>; Thu, 6 Feb 1997 17:33:53 -0600 (CST)
Received: by omega.intranet.com; (5.65v3.2/1.3/10May95) id AA01092; Thu, 6 Feb 1997 18:34:15 -0500
Date: Thu, 6 Feb 1997 18:34:33 -0500 (EST)
Message-Id: <199702062334.SAA03694@blight.IntraNet.com>
From: Jonathan Edwards <edwards@intranet.com>
To: xemacs-beta@xemacs.org
Subject: blink-cursor patch
X-Face: #bA9Kpw-a@xMyaNJ-2wie(5Lje^S*i^8!VUOF84U!/jSPG*y@3s4Qu+\-FBQ?vQpE1S1<Vo
 TeWVx=wH}wf_WC]x:D%qd,r*|!~q=gVAWEA;T~3V4};X$r7W!FA(#Zj'E7M^(Tv)

The following patch to blink-cursor mode stops the cursor from
blinking for a second after any user input. This is particularly
helpful during rapid cursor movement - you can see where you are
going!

Going off-line for 4 days...
Jonathan



--- blink-cursor.el.sav Wed Dec 18 17:42:54 1996
+++ blink-cursor.el     Thu Feb  6 18:22:37 1997
@@ -38,15 +38,28 @@
       (or blink-cursor-last-selected-window
    (setq blink-cursor-last-selected-window window))
       (if (eq window blink-cursor-last-selected-window)
-   (set-specifier text-cursor-visible-p
-        (not (specifier-instance text-cursor-visible-p
-                          window))
-        window)
+
+   (if (specifier-instance text-cursor-visible-p window)
+       (if (let ((current-time (current-time)))
+         (or (> (car current-time) (car last-input-time))
+       (> (cadr current-time) (cdr last-input-time))))
+       ; turn cursor off only if more than a second since last input
+       (set-specifier text-cursor-visible-p nil window))
+     (set-specifier text-cursor-visible-p t window))
+
  (remove-specifier text-cursor-visible-p
          blink-cursor-last-selected-window)
  (setq blink-cursor-last-selected-window window)
  (set-specifier text-cursor-visible-p nil window)))))
 
+; Turn on cursor after every command
+(defun blink-cursor-post-command-hook ()
+  (let ((inhibit-quit t)
+ (window (selected-window)))
+    (if blink-cursor-lost-focus
+ nil
+      (set-specifier text-cursor-visible-p t window))))
+
 (defun blink-cursor-reenable-cursor ()
   (if blink-cursor-last-selected-window
       (progn
@@ -63,6 +76,7 @@
 
 (add-hook 'deselect-frame-hook 'blink-cursor-deselect-frame-hook)
 (add-hook 'select-frame-hook 'blink-cursor-select-frame-hook)
+(add-hook 'post-command-hook 'blink-cursor-post-command-hook)
 
 (defvar blink-cursor-timeout 1.0)
 (defvar blink-cursor-timeout-id nil)
@@ -96,4 +110,7 @@
   (if blink-cursor-mode
       (setq blink-cursor-timeout-id
      (add-timeout (/ (float timeout) 2) 'blink-cursor-callback nil
-        (/ (float timeout) 2)))))
+        (/ (float timeout) 2))))
+  ; initialize last-input-time
+  (if (not last-input-time)
+      (setq last-input-time (cons 0 0))))

