aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard M. Stallman1994-02-06 08:05:58 +0000
committerRichard M. Stallman1994-02-06 08:05:58 +0000
commitfffc2367a5c1e2d9a1a170c3f99b65734584fbf6 (patch)
tree949958484799c3b1e84e7e6591be864e83e582af /src
parent278feba9ce82a494b7ff14e695fc80fc0ed9cc16 (diff)
downloademacs-fffc2367a5c1e2d9a1a170c3f99b65734584fbf6.tar.gz
emacs-fffc2367a5c1e2d9a1a170c3f99b65734584fbf6.zip
(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.
Diffstat (limited to 'src')
-rw-r--r--src/xfaces.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/xfaces.c b/src/xfaces.c
index 6cba032b7e6..a3c2eecebbd 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -481,6 +481,9 @@ init_frame_faces (f)
481 ensure_face_ready (f, 0); 481 ensure_face_ready (f, 0);
482 ensure_face_ready (f, 1); 482 ensure_face_ready (f, 1);
483 483
484 FRAME_N_COMPUTED_FACES (f) = 0;
485 FRAME_SIZE_COMPUTED_FACES (f) = 0;
486
484 new_computed_face (f, FRAME_PARAM_FACES (f)[0]); 487 new_computed_face (f, FRAME_PARAM_FACES (f)[0]);
485 new_computed_face (f, FRAME_PARAM_FACES (f)[1]); 488 new_computed_face (f, FRAME_PARAM_FACES (f)[1]);
486 recompute_basic_faces (f); 489 recompute_basic_faces (f);
@@ -569,11 +572,10 @@ new_computed_face (f, new_face)
569 int new_size = i + 32; 572 int new_size = i + 32;
570 573
571 FRAME_COMPUTED_FACES (f) 574 FRAME_COMPUTED_FACES (f)
572 = (struct face **) 575 = (struct face **) (FRAME_SIZE_COMPUTED_FACES (f) == 0
573 (FRAME_SIZE_COMPUTED_FACES (f) == 0 576 ? xmalloc (new_size * sizeof (struct face *))
574 ? xmalloc (new_size * sizeof (struct face *)) 577 : xrealloc (FRAME_COMPUTED_FACES (f),
575 : xrealloc (FRAME_COMPUTED_FACES (f), 578 new_size * sizeof (struct face *)));
576 new_size * sizeof (struct face *)));
577 FRAME_SIZE_COMPUTED_FACES (f) = new_size; 579 FRAME_SIZE_COMPUTED_FACES (f) = new_size;
578 } 580 }
579 581
@@ -887,15 +889,16 @@ compute_char_face (f, w, pos, region_beg, region_end, endptr, limit)
887 889
888/* Return the face ID to use to display a special glyph which selects 890/* Return the face ID to use to display a special glyph which selects
889 FACE_CODE as the face ID, assuming that ordinarily the face would 891 FACE_CODE as the face ID, assuming that ordinarily the face would
890 be BASIC_FACE. F is the frame. */ 892 be CURRENT_FACE. F is the frame. */
893
891int 894int
892compute_glyph_face (f, face_code) 895compute_glyph_face (f, face_code, current_face)
893 struct frame *f; 896 struct frame *f;
894 int face_code; 897 int face_code, current_face;
895{ 898{
896 struct face face; 899 struct face face;
897 900
898 compute_base_face (f, &face); 901 face = *FRAME_COMPUTED_FACES (f)[current_face];
899 902
900 if (face_code >= 0 && face_code < FRAME_N_PARAM_FACES (f) 903 if (face_code >= 0 && face_code < FRAME_N_PARAM_FACES (f)
901 && FRAME_PARAM_FACES (f) [face_code] != 0) 904 && FRAME_PARAM_FACES (f) [face_code] != 0)
@@ -908,6 +911,7 @@ compute_glyph_face (f, face_code)
908/* Recompute the GC's for the default and modeline faces. 911/* Recompute the GC's for the default and modeline faces.
909 We call this after changing frame parameters on which those GC's 912 We call this after changing frame parameters on which those GC's
910 depend. */ 913 depend. */
914
911void 915void
912recompute_basic_faces (f) 916recompute_basic_faces (f)
913 FRAME_PTR f; 917 FRAME_PTR f;