Mercurial > hg > xemacs-beta
diff lisp/packages/blink-cursor.el @ 98:0d2f883870bc r20-1b1
Import from CVS: tag r20-1b1
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:13:56 +0200 |
parents | 131b0175ea99 |
children | 8eaf7971accc |
line wrap: on
line diff
--- a/lisp/packages/blink-cursor.el Mon Aug 13 09:12:43 2007 +0200 +++ b/lisp/packages/blink-cursor.el Mon Aug 13 09:13:56 2007 +0200 @@ -38,15 +38,29 @@ (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 +77,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 +111,11 @@ (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)))) + +(provide 'blink-cursor) + +;;; blink-cursor.el ends here