changeset 19043:a2853a75ce57

(info-node, info-xref, info-menu-5): Define faces with defface. (Info-mode): Don't define faces here, and don't alter Info-fontify. Locally set line-move-ignore-invisible. (Info-fontify-node): Test type of frame here.
author Richard M. Stallman <rms@gnu.org>
date Wed, 30 Jul 1997 18:15:19 +0000
parents e50604c01474
children 192305191a1f
files lisp/info.el
diffstat 1 files changed, 24 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/info.el	Wed Jul 30 16:14:07 1997 +0000
+++ b/lisp/info.el	Wed Jul 30 18:15:19 1997 +0000
@@ -58,6 +58,21 @@
   :type 'boolean
   :group 'info)
 
+(defface info-node
+  '((t (:bold t :italic t)))
+  "Face for Info node names."
+  :group 'info)
+
+(defface info-menu-5
+  '((t (:underline t)))
+  "Face for the fifth and tenth `*' in an Info menu."
+  :group 'info)
+
+(defface info-xref
+  '((t (:bold t)))
+  "Face for Info cross-references."
+  :group 'info)
+
 (defcustom Info-fontify-maximum-menu-size 30000
   "*Maximum size of menu to fontify if `Info-fontify' is non-nil."
   :type 'integer
@@ -1786,20 +1801,9 @@
   (setq Info-tag-table-buffer nil)
   (make-local-variable 'Info-history)
   (make-local-variable 'Info-index-alternatives)
-  (if (memq (framep (selected-frame)) '(x pc w32))
-      (progn
-	(make-face 'info-node)
-	(make-face 'info-menu-5)
-	(make-face 'info-xref)
-	(or (face-differs-from-default-p 'info-node)
-	    (if (face-differs-from-default-p 'bold-italic)
-		(copy-face 'bold-italic 'info-node)
-	      (copy-face 'bold 'info-node)))
-	(or (face-differs-from-default-p 'info-menu-5)
-	    (set-face-underline-p 'info-menu-5 t))
-	(or (face-differs-from-default-p 'info-xref)
-	    (copy-face 'bold 'info-xref)))
-    (setq Info-fontify nil))
+  ;; This is for the sake of the invisible text we use handling titles.
+  (make-local-variable 'line-move-ignore-invisible)
+  (setq line-move-ignore-invisible t)
   (Info-set-mode-line)
   (run-hooks 'Info-mode-hook))
 
@@ -1988,8 +1992,12 @@
 	(put-text-property (match-beginning 1) (match-end 1)
 			   'face
 			   (cdr (assq (preceding-char) Info-title-face-alist)))
-	(put-text-property (match-end 1) (match-end 2)
-			   'invisible t))
+	;; This is a serious problem for trying to handle multiple
+	;; frame types at once.  We want this text to be invisible
+	;; on frames that can display the font above.
+	(if (memq (framep (selected-frame)) '(x pc w32))
+	    (put-text-property (match-end 1) (match-end 2)
+			       'invisible t)))
       (goto-char (point-min))
       (while (re-search-forward "\\*Note[ \n\t]+\\([^:]*\\):" nil t)
 	(if (= (char-after (1- (match-beginning 0))) ?\") ; hack