changeset 5801:af397aaa8e6b

(init_frame_faces): Clear FRAME_N_COMPUTED_FACES and FRAME_SIZE_COMPUTED_FACES. (compute_glyph_face): New arg CURRENT_FACE specifies face to merge with.
author Richard M. Stallman <rms@gnu.org>
date Sun, 06 Feb 1994 08:05:58 +0000
parents 295e342614a4
children 3db75b13c7f5
files src/xfaces.c
diffstat 1 files changed, 13 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/src/xfaces.c	Sun Feb 06 08:04:54 1994 +0000
+++ b/src/xfaces.c	Sun Feb 06 08:05:58 1994 +0000
@@ -481,6 +481,9 @@
   ensure_face_ready (f, 0);
   ensure_face_ready (f, 1);
 
+  FRAME_N_COMPUTED_FACES (f) = 0;
+  FRAME_SIZE_COMPUTED_FACES (f) = 0;
+
   new_computed_face (f, FRAME_PARAM_FACES (f)[0]);
   new_computed_face (f, FRAME_PARAM_FACES (f)[1]);
   recompute_basic_faces (f);
@@ -569,11 +572,10 @@
       int new_size = i + 32;
 
       FRAME_COMPUTED_FACES (f)
-	= (struct face **)
-	  (FRAME_SIZE_COMPUTED_FACES (f) == 0
-	   ? xmalloc (new_size * sizeof (struct face *))
-	   : xrealloc (FRAME_COMPUTED_FACES (f),
-		       new_size * sizeof (struct face *)));
+	= (struct face **) (FRAME_SIZE_COMPUTED_FACES (f) == 0
+			    ? xmalloc (new_size * sizeof (struct face *))
+			    : xrealloc (FRAME_COMPUTED_FACES (f),
+					new_size * sizeof (struct face *)));
       FRAME_SIZE_COMPUTED_FACES (f) = new_size;
     }
 
@@ -887,15 +889,16 @@
 
 /* Return the face ID to use to display a special glyph which selects
    FACE_CODE as the face ID, assuming that ordinarily the face would
-   be BASIC_FACE.  F is the frame.  */
+   be CURRENT_FACE.  F is the frame.  */
+
 int
-compute_glyph_face (f, face_code)
+compute_glyph_face (f, face_code, current_face)
      struct frame *f;
-     int face_code;
+     int face_code, current_face;
 {
   struct face face;
 
-  compute_base_face (f, &face);
+  face = *FRAME_COMPUTED_FACES (f)[current_face];
 
   if (face_code >= 0 && face_code < FRAME_N_PARAM_FACES (f)
       && FRAME_PARAM_FACES (f) [face_code] != 0)
@@ -908,6 +911,7 @@
 /* Recompute the GC's for the default and modeline faces.
    We call this after changing frame parameters on which those GC's
    depend.  */
+
 void
 recompute_basic_faces (f)
      FRAME_PTR f;