diff options
| author | Richard M. Stallman | 1994-02-06 08:05:58 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1994-02-06 08:05:58 +0000 |
| commit | fffc2367a5c1e2d9a1a170c3f99b65734584fbf6 (patch) | |
| tree | 949958484799c3b1e84e7e6591be864e83e582af /src | |
| parent | 278feba9ce82a494b7ff14e695fc80fc0ed9cc16 (diff) | |
| download | emacs-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.c | 22 |
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 | |||
| 891 | int | 894 | int |
| 892 | compute_glyph_face (f, face_code) | 895 | compute_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 | |||
| 911 | void | 915 | void |
| 912 | recompute_basic_faces (f) | 916 | recompute_basic_faces (f) |
| 913 | FRAME_PTR f; | 917 | FRAME_PTR f; |