]> git.eshelyaron.com Git - emacs.git/commitdiff
(frame-set-background-mode): Window system frames
authorJason Rumney <jasonr@gnu.org>
Mon, 13 Apr 2009 14:06:48 +0000 (14:06 +0000)
committerJason Rumney <jasonr@gnu.org>
Mon, 13 Apr 2009 14:06:48 +0000 (14:06 +0000)
default to light. Use default in cases where specified color
does not exist (Bug#2969).

lisp/ChangeLog
lisp/faces.el

index c50a95df7ab083692fb30c9b69683c0d959197a9..fd14c1aade7377e7fc8a3da6fe62d9430346383a 100644 (file)
@@ -1,3 +1,9 @@
+2009-04-13  Jason Rumney  <jasonr@gnu.org>
+
+       * faces.el (frame-set-background-mode): Window system frames
+       default to light. Use default in cases where specified color
+       does not exist (Bug#2969).
+
 2009-04-13  Kenichi Handa  <handa@m17n.org>
 
        * language/japanese.el (cp932): Delete alias for
index 21de277cbce708d5bfd5fab920984ebce71cc93f..7e4c6d3a29c429998bc68c7d85750c502ce8788c 100644 (file)
@@ -1847,28 +1847,22 @@ according to the `background-mode' and `display-type' frame parameters."
           (bg-color (frame-parameter frame 'background-color))
           (terminal-bg-mode (terminal-parameter frame 'background-mode))
           (tty-type (tty-type frame))
+          (default-bg-mode
+            (if (or (window-system frame)
+                    (and tty-type
+                         (string-match "^\\(xterm\\|\\rxvt\\|dtterm\\|eterm\\)"
+                                       tty-type)))
+                'light
+              'dark))
+          (non-default-bg-mode (if (eq default-bg-mode 'light) 'dark 'light))
           (bg-mode
            (cond (frame-background-mode)
                  (bg-resource (intern (downcase bg-resource)))
                  (terminal-bg-mode)
-                 ((and (null (window-system frame))
-                       ;; Unspecified frame background color can only
-                       ;; happen on tty's.
-                       (member bg-color '(nil unspecified "unspecified-bg")))
-                  ;; There is no way to determine the background mode
-                  ;; automatically, so we make a guess based on the
-                  ;; terminal type.
-                  (if (and tty-type
-                           (string-match "^\\(xterm\\|rxvt\\|dtterm\\|eterm\\)"
-                                         tty-type))
-                      'light
-                    'dark))
                  ((equal bg-color "unspecified-fg") ; inverted colors
-                  (if (and tty-type
-                           (string-match "^\\(xterm\\|rxvt\\|dtterm\\|eterm\\)"
-                                         tty-type))
-                      'dark
-                    'light))
+                  non-default-bg-mode)
+                 ((not (color-values bg-color frame))
+                  default-bg-mode)
                  ((>= (apply '+ (color-values bg-color frame))
                       ;; Just looking at the screen, colors whose
                       ;; values add up to .6 of the white total