diff options
| author | Jim Blandy | 1993-06-22 07:25:11 +0000 |
|---|---|---|
| committer | Jim Blandy | 1993-06-22 07:25:11 +0000 |
| commit | a081bd37248abe85b193f4fdd59506b0b6a6f6ee (patch) | |
| tree | c18269f4024e3708f76e9a28ed3b0ad2009fb7d4 /src | |
| parent | 85f26be98d75498956b04a4b03e1f6c918c840ba (diff) | |
| download | emacs-a081bd37248abe85b193f4fdd59506b0b6a6f6ee.tar.gz emacs-a081bd37248abe85b193f4fdd59506b0b6a6f6ee.zip | |
Separate parameter faces (those created and modified by the user)
from the computed faces (the combinations created by
compute_char_face), so that we don't waste global face id's.
* xterm.h (struct x_display): Replace the fields faces and n_faces
with fields param_faces, n_param_faces, computed_faces,
n_computed_faces, and size_computed_faces.
(FRAME_FACES, FRAME_N_FACES): Replaced by...
(FRAME_COMPUTED_FACES, FRAME_N_COMPUTED_FACES, FRAME_PARAM_FACES,
FRAME_N_PARAM_FACES): New macros.
* xfaces.c: Doc fixes.
(init_frame_faces): Call new_computed_face to create entries for
the default and mode line faces. Use the FRAME...PARAM_FACES
macros.
(free_frame_faces): Use the FRAME...PARAM_FACES and
FRAME...COMPUTED_FACES macros. Don't use the copy flag; all
parameter faces have real X resources, and all computed faces just
have copies. Free both the parameter and computed face arrays.
(new_computed_face): New function.
(intern_computed_face): Renamed from intern_frame_face; callers
changed. Call new_computed_face.
(ensure_face_ready, compute_char_face, compute_glyph_face): Use the
FRAME...PARAM_FACES macros.
(recompute_basic_faces): Use the FRAME...PARAM_FACES and
FRAME...COMPUTED_FACES macros. Produce the computed faces by
starting with the base faces and merging in the parameter faces.
(Fset_face_attribute_internal): Use the FRAME...PARAM_FACES
macros. Just call recompute_basic_faces if the default or mode
line faces have changed.
* xfns.c (Fx_list_fonts): Use the FRAME...PARAM_FACES macros.
* xterm.c (dumpglyphs): Use the FRAME...COMPUTED_FACES macros.
* dispextern.h (struct face): Remove the copy member. This is no
longer necessary; all computed faces are copies, and no parameter
faces are.
* xfns.c (Fx_open_connection): Remember to block input while
calling x_load_resources.
* xrdb.c: Undo change of June 19th; it was a BLOCK_INPUT problem,
not a server-specific bug.
Diffstat (limited to 'src')
| -rw-r--r-- | src/xfns.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/xfns.c b/src/xfns.c index db0cd640074..a103cfc9e47 100644 --- a/src/xfns.c +++ b/src/xfns.c | |||
| @@ -2208,12 +2208,12 @@ fonts), even if they match PATTERN and FACE.") | |||
| 2208 | FRAME_PTR f = NILP (frame) ? selected_frame : XFRAME (frame); | 2208 | FRAME_PTR f = NILP (frame) ? selected_frame : XFRAME (frame); |
| 2209 | int face_id = face_name_id_number (f, face); | 2209 | int face_id = face_name_id_number (f, face); |
| 2210 | 2210 | ||
| 2211 | if (face_id < 0 || face_id >= FRAME_N_FACES (f) | 2211 | if (face_id < 0 || face_id >= FRAME_N_PARAM_FACES (f) |
| 2212 | || FRAME_FACES (f) [face_id] == 0) | 2212 | || FRAME_PARAM_FACES (f) [face_id] == 0) |
| 2213 | size_ref = f->display.x->font; | 2213 | size_ref = f->display.x->font; |
| 2214 | else | 2214 | else |
| 2215 | { | 2215 | { |
| 2216 | size_ref = FRAME_FACES (f) [face_id]->font; | 2216 | size_ref = FRAME_PARAM_FACES (f) [face_id]->font; |
| 2217 | if (size_ref == (XFontStruct *) (~0)) | 2217 | if (size_ref == (XFontStruct *) (~0)) |
| 2218 | size_ref = f->display.x->font; | 2218 | size_ref = f->display.x->font; |
| 2219 | } | 2219 | } |
| @@ -3483,7 +3483,9 @@ arg XRM_STRING is a string of resources in xrdb format.") | |||
| 3483 | } | 3483 | } |
| 3484 | else | 3484 | else |
| 3485 | xrm_option = (unsigned char *) 0; | 3485 | xrm_option = (unsigned char *) 0; |
| 3486 | BLOCK_INPUT; | ||
| 3486 | xrdb = x_load_resources (x_current_display, xrm_option, EMACS_CLASS); | 3487 | xrdb = x_load_resources (x_current_display, xrm_option, EMACS_CLASS); |
| 3488 | UNBLOCK_INPUT; | ||
| 3487 | #if defined (HAVE_X11R5) || defined (HAVE_XRMSETDATABASE) | 3489 | #if defined (HAVE_X11R5) || defined (HAVE_XRMSETDATABASE) |
| 3488 | XrmSetDatabase (x_current_display, xrdb); | 3490 | XrmSetDatabase (x_current_display, xrdb); |
| 3489 | #else | 3491 | #else |