]> git.eshelyaron.com Git - emacs.git/commit
Add support for per-window face remapping
authorDaniel Colascione <dancol@dancol.org>
Thu, 7 Jun 2018 23:20:06 +0000 (16:20 -0700)
committerDaniel Colascione <dancol@dancol.org>
Fri, 8 Jun 2018 04:03:30 +0000 (21:03 -0700)
commit9d447fa1562c69f2224bdefc37703c0eb0f7d7cf
treedd1d64edecb820298d433f5537e12835058db362
parente2a98002020369cf0c09c7acf8557290e867705f
Add support for per-window face remapping

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.
etc/NEWS
src/dispextern.h
src/dispnew.c
src/font.c
src/fringe.c
src/msdos.c
src/term.c
src/xdisp.c
src/xfaces.c