comparison 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
comparison
equal deleted inserted replaced
97:498bf5da1c90 98:0d2f883870bc
36 (if blink-cursor-lost-focus 36 (if blink-cursor-lost-focus
37 nil 37 nil
38 (or blink-cursor-last-selected-window 38 (or blink-cursor-last-selected-window
39 (setq blink-cursor-last-selected-window window)) 39 (setq blink-cursor-last-selected-window window))
40 (if (eq window blink-cursor-last-selected-window) 40 (if (eq window blink-cursor-last-selected-window)
41 (set-specifier text-cursor-visible-p 41
42 (not (specifier-instance text-cursor-visible-p 42 (if (specifier-instance text-cursor-visible-p window)
43 window)) 43 (if (let ((current-time (current-time)))
44 window) 44 (or (> (car current-time) (car last-input-time))
45 (> (cadr current-time) (cdr last-input-time))))
46 ;; turn cursor off only if more than a second since
47 ;; last input
48 (set-specifier text-cursor-visible-p nil window))
49 (set-specifier text-cursor-visible-p t window))
50
45 (remove-specifier text-cursor-visible-p 51 (remove-specifier text-cursor-visible-p
46 blink-cursor-last-selected-window) 52 blink-cursor-last-selected-window)
47 (setq blink-cursor-last-selected-window window) 53 (setq blink-cursor-last-selected-window window)
48 (set-specifier text-cursor-visible-p nil window))))) 54 (set-specifier text-cursor-visible-p nil window)))))
55
56 ; Turn on cursor after every command
57 (defun blink-cursor-post-command-hook ()
58 (let ((inhibit-quit t)
59 (window (selected-window)))
60 (if blink-cursor-lost-focus
61 nil
62 (set-specifier text-cursor-visible-p t window))))
49 63
50 (defun blink-cursor-reenable-cursor () 64 (defun blink-cursor-reenable-cursor ()
51 (if blink-cursor-last-selected-window 65 (if blink-cursor-last-selected-window
52 (progn 66 (progn
53 (remove-specifier text-cursor-visible-p 67 (remove-specifier text-cursor-visible-p
61 (defun blink-cursor-select-frame-hook () 75 (defun blink-cursor-select-frame-hook ()
62 (setq blink-cursor-lost-focus nil)) 76 (setq blink-cursor-lost-focus nil))
63 77
64 (add-hook 'deselect-frame-hook 'blink-cursor-deselect-frame-hook) 78 (add-hook 'deselect-frame-hook 'blink-cursor-deselect-frame-hook)
65 (add-hook 'select-frame-hook 'blink-cursor-select-frame-hook) 79 (add-hook 'select-frame-hook 'blink-cursor-select-frame-hook)
80 (add-hook 'post-command-hook 'blink-cursor-post-command-hook)
66 81
67 (defvar blink-cursor-timeout 1.0) 82 (defvar blink-cursor-timeout 1.0)
68 (defvar blink-cursor-timeout-id nil) 83 (defvar blink-cursor-timeout-id nil)
69 (defvar blink-cursor-mode nil) 84 (defvar blink-cursor-mode nil)
70 85
94 (blink-cursor-reenable-cursor) 109 (blink-cursor-reenable-cursor)
95 (setq blink-cursor-timeout-id nil))) 110 (setq blink-cursor-timeout-id nil)))
96 (if blink-cursor-mode 111 (if blink-cursor-mode
97 (setq blink-cursor-timeout-id 112 (setq blink-cursor-timeout-id
98 (add-timeout (/ (float timeout) 2) 'blink-cursor-callback nil 113 (add-timeout (/ (float timeout) 2) 'blink-cursor-callback nil
99 (/ (float timeout) 2))))) 114 (/ (float timeout) 2))))
115 ; initialize last-input-time
116 (if (not last-input-time)
117 (setq last-input-time (cons 0 0))))
118
119 (provide 'blink-cursor)
120
121 ;;; blink-cursor.el ends here