• Jim Blandy's avatar
    Separate parameter faces (those created and modified by the user) · a081bd37
    Jim Blandy authored
    	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.
    a081bd37
xfns.c 101 KB