diff options
| author | Daniel Colascione | 2018-06-07 16:20:06 -0700 |
|---|---|---|
| committer | Daniel Colascione | 2018-06-07 21:03:30 -0700 |
| commit | 9d447fa1562c69f2224bdefc37703c0eb0f7d7cf (patch) | |
| tree | dd1d64edecb820298d433f5537e12835058db362 /src/dispextern.h | |
| parent | e2a98002020369cf0c09c7acf8557290e867705f (diff) | |
| download | emacs-9d447fa1562c69f2224bdefc37703c0eb0f7d7cf.tar.gz emacs-9d447fa1562c69f2224bdefc37703c0eb0f7d7cf.zip | |
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.
Diffstat (limited to 'src/dispextern.h')
| -rw-r--r-- | src/dispextern.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/dispextern.h b/src/dispextern.h index bc2a76f1e02..2180c9ae63f 100644 --- a/src/dispextern.h +++ b/src/dispextern.h | |||
| @@ -3429,11 +3429,12 @@ char *choose_face_font (struct frame *, Lisp_Object *, Lisp_Object, | |||
| 3429 | #ifdef HAVE_WINDOW_SYSTEM | 3429 | #ifdef HAVE_WINDOW_SYSTEM |
| 3430 | void prepare_face_for_display (struct frame *, struct face *); | 3430 | void prepare_face_for_display (struct frame *, struct face *); |
| 3431 | #endif | 3431 | #endif |
| 3432 | int lookup_named_face (struct frame *, Lisp_Object, bool); | 3432 | int lookup_named_face (struct window *, struct frame *, Lisp_Object, bool); |
| 3433 | int lookup_basic_face (struct frame *, int); | 3433 | int lookup_basic_face (struct window *, struct frame *, int); |
| 3434 | int smaller_face (struct frame *, int, int); | 3434 | int smaller_face (struct frame *, int, int); |
| 3435 | int face_with_height (struct frame *, int, int); | 3435 | int face_with_height (struct frame *, int, int); |
| 3436 | int lookup_derived_face (struct frame *, Lisp_Object, int, bool); | 3436 | int lookup_derived_face (struct window *, struct frame *, |
| 3437 | Lisp_Object, int, bool); | ||
| 3437 | void init_frame_faces (struct frame *); | 3438 | void init_frame_faces (struct frame *); |
| 3438 | void free_frame_faces (struct frame *); | 3439 | void free_frame_faces (struct frame *); |
| 3439 | void recompute_basic_faces (struct frame *); | 3440 | void recompute_basic_faces (struct frame *); |
| @@ -3443,7 +3444,7 @@ int face_for_overlay_string (struct window *, ptrdiff_t, ptrdiff_t *, ptrdiff_t, | |||
| 3443 | bool, Lisp_Object); | 3444 | bool, Lisp_Object); |
| 3444 | int face_at_string_position (struct window *, Lisp_Object, ptrdiff_t, ptrdiff_t, | 3445 | int face_at_string_position (struct window *, Lisp_Object, ptrdiff_t, ptrdiff_t, |
| 3445 | ptrdiff_t *, enum face_id, bool); | 3446 | ptrdiff_t *, enum face_id, bool); |
| 3446 | int merge_faces (struct frame *, Lisp_Object, int, int); | 3447 | int merge_faces (struct window *, Lisp_Object, int, int); |
| 3447 | int compute_char_face (struct frame *, int, Lisp_Object); | 3448 | int compute_char_face (struct frame *, int, Lisp_Object); |
| 3448 | void free_all_realized_faces (Lisp_Object); | 3449 | void free_all_realized_faces (Lisp_Object); |
| 3449 | extern char unspecified_fg[], unspecified_bg[]; | 3450 | extern char unspecified_fg[], unspecified_bg[]; |