• Daniel Colascione's avatar
    Add support for per-window face remapping · 9d447fa1
    Daniel Colascione authored
    Extend face specifications to support the notion of filtering to a
    specific context and add a filter that limits a face specification to
    windows having a certain parameter.
    
    * src/xfaces.c:
    (evaluate_face_filter,filter_face_ref): New functions.
    (merge_face_ref): Ignore filtered face specifications.
    (Fx_list_fonts,get_lface_attributes,merge_face_vectors)
    (merge_named_face,merge_face_ref,merge_face_ref)
    (Finternal_merge_in_global_face,Fface_font,lookup_named_face)
    (lookup_basic_face,Fface_attributes_as_vector)
    (x_supports_face_attributes_p)
    (Fdisplay_supports_face_attributes_p,realize_named_face)
    (compute_char_face,face_at_buffer_position)
    (face_at_buffer_position,face_at_buffer_position)
    (face_at_buffer_position)
    (face_for_overlay_string,face_at_string_position,merge_faces):
    Pass window to face machinery.
    (syms_of_xfaces): Add :window and :filtered
    
    * src/xdisp.c (init_iterator, handle_face_prop)
    (handle_single_display_spec, merge_escape_glyph_face)
    (merge_glyphless_glyph_face, get_next_display_element)
    (next_element_from_display_vector, append_space_for_newline)
    (extend_face_to_end_of_line,highlight_trailing_whitespace)
    (maybe_produce_line_number)
    (display_line, calc_line_height_property): Pass window to
    face machinery.
    
    * src/term.c (tty_menu_activate): Adjust to new face core
    function signature.
    
    * src/msdos.c (XMenuActivate): Adjust to new face core
    function signature.
    
    * src/fringe.c (draw_fringe_bitmap_1, Fset_fringe_bitmap_face):
    Pass window to face machinery.
    
    * src/font.c (font_range, Finternal_char_font): Pass window to
    face machinery.
    
    * src/dispnew.c (spec_glyph_lookup_face): Pass window to
    face machinery.
    
    * src/dispextern.h:
    (lookup_named_face,lookup_basic_face)
    (lookup_derived_face,merge_faces):
    Add struct window arguments to prototypes.
    9d447fa1
xfaces.c 201 KB