summaryrefslogtreecommitdiff
path: root/lisp/faces.el
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2000-10-19 06:55:04 +0000
committerEli Zaretskii <eliz@gnu.org>2000-10-19 06:55:04 +0000
commit658d8a66cf5285349bc3f276f3e28666b575d3ce (patch)
treedf5f32a97d1e2bbbd538246a7c30d0eed61fce18 /lisp/faces.el
parentfd2344f1e9b330964223eae14d4d0b7a18ff99ff (diff)
downloademacs-658d8a66cf5285349bc3f276f3e28666b575d3ce.tar.gz
(frame-set-background-mode): If a tty frame defines a
background color, use that to compute the background mode, instead of always defaulting to "dark".
Diffstat (limited to 'lisp/faces.el')
-rw-r--r--lisp/faces.el21
1 files changed, 13 insertions, 8 deletions
diff --git a/lisp/faces.el b/lisp/faces.el
index 89c3bf73f3c..f4bd0eee9ce 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -1308,22 +1308,27 @@ this won't have the expected effect."
(let* ((bg-resource
(and window-system
(x-get-resource ".backgroundMode" "BackgroundMode")))
+ (bg-color (frame-parameter frame 'background-color))
(bg-mode
(cond (frame-background-mode)
- ((null window-system)
- ;; No way to determine this automatically (?).
- 'dark)
(bg-resource
(intern (downcase bg-resource)))
- ((< (apply '+ (x-color-values
- (frame-parameter frame 'background-color)
- frame))
+ ((and (null window-system) (null bg-color))
+ ;; No way to determine this automatically (?).
+ 'dark)
+ ;; Unspecified frame background color can only happen
+ ;; on tty's.
+ ((memq bg-color '("unspecified" "unspecified-bg"))
+ 'dark)
+ ((eq bg-color "unspecified-fg") ; inverted colors
+ 'light)
+ ((>= (apply '+ (x-color-values bg-color frame))
;; Just looking at the screen, colors whose
;; values add up to .6 of the white total
;; still look dark to me.
(* (apply '+ (x-color-values "white" frame)) .6))
- 'dark)
- (t 'light)))
+ 'light)
+ (t 'dark)))
(display-type
(cond ((null window-system)
(if (tty-display-color-p frame) 'color 'mono))