]> code.delx.au - gnu-emacs/commitdiff
(display-supports-face-attributes-p): Work correctly if DISPLAY is a frame.
authorMiles Bader <miles@gnu.org>
Mon, 10 Jun 2002 02:15:24 +0000 (02:15 +0000)
committerMiles Bader <miles@gnu.org>
Mon, 10 Jun 2002 02:15:24 +0000 (02:15 +0000)
(face-spec-set-match-display): Support `supports' predicate.
(italic): Try underlining for displays that don't support real italics.

lisp/ChangeLog
lisp/faces.el

index 13ab17c18688254d2c6c7604cb7faa04bad2c1e5..68c428f29f25e8d2cc977ca441986e838a010ba5 100644 (file)
@@ -1,6 +1,8 @@
-2002-06-05  Miles Bader  <miles@gnu.org>
+2002-06-10  Miles Bader  <miles@gnu.org>
 
        * faces.el (display-supports-face-attributes-p): New function.
+       (face-spec-set-match-display): Support `supports' predicate.
+       (italic): Try underlining for displays that don't support real italics.
        * term/tty-colors.el (color-name-rgb-alist): Use 16-bit RGB values
        instead of 8-bit, for consistency with the rest of emacs.
        (tty-color-canonicalize): Only copy COLOR if we need to change it.
index 83832f2b47f8b120407bccdfa424484d7496442f..3e4d44709b24359b4bb9939e9c1612e05353885b 100644 (file)
@@ -1318,6 +1318,8 @@ If FRAME is nil, the current FRAME is used."
                        ((eq req 'background)
                         (memq (frame-parameter frame 'background-mode)
                               options))
+                       ((eq req 'supports)
+                        (display-supports-face-attributes-p options frame))
                        (t (error "Unknown req `%S' with options `%S'"
                                  req options)))))
     match))
@@ -1494,7 +1496,10 @@ any display that can display bold, and a `:foreground \"yellow\"' as long
 as it can display a yellowish color, but `:slant italic' will _not_ be
 satisified by the tty display code's automatic substitution of a `dim'
 face for italic."
-  (let ((frame (car (frames-on-display-list display))))
+  (let ((frame
+        (if (framep display)
+            display
+          (car (frames-on-display-list display)))))
     ;; For now, we assume that non-tty displays can support everything.
     ;; Later, we should add the ability to query about specific fonts,
     ;; colors, etc.
@@ -1938,7 +1943,16 @@ created."
   :group 'basic-faces)
 
 
-(defface italic '((t :slant italic))
+(defface italic
+  '((((supports :slant italic))
+     :slant italic)
+    (((supports :underline t))
+     :underline t)
+    (t
+     ;; default to italic, even it doesn't appear to be supported,
+     ;; because in some cases the display engine will do it's own
+     ;; workaround (to `dim' on ttys)
+     :slant italic))
   "Basic italic font."
   :group 'basic-faces)