Show
Ignore:
Timestamp:
09/09/06 16:30:10 (2 years ago)
Author:
miyoshi
Message:

Sync up with Emacs CVS HEAD.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lisp/emulation/viper-util.el

    r4098 r4161  
    138138   )) 
    139139 
    140 (defsubst viper-get-cursor-color (
     140(defun viper-get-cursor-color (&optional frame
    141141  (viper-cond-compile-for-xemacs-or-emacs 
    142142   (color-instance-name 
    143     (frame-property (selected-frame) 'cursor-color)) ; xemacs 
     143    (frame-property (or frame (selected-frame)) 'cursor-color)) ; xemacs 
    144144   (cdr (assoc 'cursor-color (frame-parameters))) ; emacs 
    145145   )) 
     
    153153 
    154154;; cursor colors 
    155 (defun viper-change-cursor-color (new-color
     155(defun viper-change-cursor-color (new-color &optional frame
    156156  (if (and (viper-window-display-p)  (viper-color-display-p) 
    157157           (stringp new-color) (viper-color-defined-p new-color) 
     
    159159      (viper-cond-compile-for-xemacs-or-emacs 
    160160       (set-frame-property 
    161         (selected-frame) 'cursor-color (make-color-instance new-color)) 
     161        (or frame (selected-frame)) 
     162        'cursor-color (make-color-instance new-color)) 
    162163       (modify-frame-parameters 
    163         (selected-frame) (list (cons 'cursor-color new-color))) 
     164        (or frame (selected-frame)) 
     165        (list (cons 'cursor-color new-color))) 
    164166       ) 
    165167    )) 
     168 
     169(defun viper-set-cursor-color-according-to-state (&optional frame) 
     170  (cond ((eq viper-current-state 'replace-state) 
     171         (viper-change-cursor-color viper-replace-state-cursor-color frame)) 
     172        ((and (eq viper-current-state 'emacs-state) 
     173              viper-emacs-state-cursor-color) 
     174         (viper-change-cursor-color viper-emacs-state-cursor-color frame)) 
     175        ((eq viper-current-state 'insert-state) 
     176         (viper-change-cursor-color viper-insert-state-cursor-color frame)) 
     177        (t 
     178         (viper-change-cursor-color viper-vi-state-cursor-color frame)))) 
    166179 
    167180;; By default, saves current frame cursor color in the 
     
    192205    (selected-frame) 
    193206    'viper-saved-cursor-color-in-replace-mode) 
    194    (if (eq viper-current-state 'emacs-mode
     207   (if (and (eq viper-current-state 'emacs-mode) viper-emacs-state-cursor-color
    195208       viper-emacs-state-cursor-color 
    196209     viper-vi-state-cursor-color))) 
     
    202215    (selected-frame) 
    203216    'viper-saved-cursor-color-in-insert-mode) 
    204    (if (eq viper-current-state 'emacs-mode
     217   (if (and (eq viper-current-state 'emacs-mode) viper-emacs-state-cursor-color
    205218       viper-emacs-state-cursor-color 
    206219     viper-vi-state-cursor-color)))