]> git.eshelyaron.com Git - emacs.git/commitdiff
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-421
authorMiles Bader <miles@gnu.org>
Wed, 15 Jun 2005 04:35:23 +0000 (04:35 +0000)
committerMiles Bader <miles@gnu.org>
Wed, 15 Jun 2005 04:35:23 +0000 (04:35 +0000)
Tweak which-func face

2005-06-15  Miles Bader  <miles@gnu.org>

   * lisp/progmodes/which-func.el (which-func): Only inherit
   `font-lock-function-name-face' when that makes sense against the
   default mode-line face, otherwise set the face color explicitly.

lisp/ChangeLog
lisp/progmodes/which-func.el

index 83e92a71907c424a2234c2124bf7e613edf66b58..13d147072848ccef2e7ebca7d2d5b4a7e62e18e3 100644 (file)
@@ -1,5 +1,9 @@
 2005-06-15  Miles Bader  <miles@gnu.org>
 
+       * progmodes/which-func.el (which-func): Only inherit
+       `font-lock-function-name-face' when that makes sense against the
+       default mode-line face, otherwise set the face color explicitly.
+
        * progmodes/cperl-mode.el (cperl-init-faces): Use literal cperl
        faces instead of (non-existent) variables.
 
index 960eec2208c3d002c3335d8bff0090a7ae61047f..a96bd076e1246a42d9136b258cc1c14c1156000c 100644 (file)
@@ -114,9 +114,30 @@ Zero means compute the Imenu menu regardless of size."
   "Keymap to display on mode line which-func.")
 
 (defface which-func
-  '((t (:inherit font-lock-function-name-face)))
-  "Face used to highlight mode line function names.
-Defaults to `font-lock-function-name-face' if font-lock is loaded."
+  ;; Whether `font-lock-function-name-face' is an appropriate face to
+  ;; inherit depends on the mode-line face; define several variants based
+  ;; on the default mode-line face.
+  '(;; The default mode-line face on a high-color display is a relatively
+    ;; light color ("grey75"), and only the light-background variant of
+    ;; `font-lock-function-name-face' is visible against it.
+    (((class color) (min-colors 88) (background light))
+     :inherit font-lock-function-name-face)
+    ;; The default mode-line face on other display types is inverse-video;
+    ;; it seems that only in the dark-background case is
+    ;; `font-lock-function-name-face' visible against it.
+    (((class grayscale mono) (background dark))
+     :inherit font-lock-function-name-face)
+    (((class color) (background light))
+     :inherit font-lock-function-name-face)
+    ;; If none of the above cases, use an explicit color chosen to contrast
+    ;; well with the default mode-line face.
+    (((class color) (min-colors 88) (background dark))
+     :foreground "Blue1")
+    (((background dark))
+     :foreground "Blue1")
+    (t
+     :foreground "LightSkyBlue"))
+  "Face used to highlight mode line function names."
   :group 'which-func)
 ;; backward-compatibility alias
 (put 'which-func-face 'face-alias 'which-func)