aboutsummaryrefslogtreecommitdiffstats
path: root/src/dispextern.h
diff options
context:
space:
mode:
authorDaniel Colascione2018-06-07 16:20:06 -0700
committerDaniel Colascione2018-06-07 21:03:30 -0700
commit9d447fa1562c69f2224bdefc37703c0eb0f7d7cf (patch)
treedd1d64edecb820298d433f5537e12835058db362 /src/dispextern.h
parente2a98002020369cf0c09c7acf8557290e867705f (diff)
downloademacs-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.h9
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
3430void prepare_face_for_display (struct frame *, struct face *); 3430void prepare_face_for_display (struct frame *, struct face *);
3431#endif 3431#endif
3432int lookup_named_face (struct frame *, Lisp_Object, bool); 3432int lookup_named_face (struct window *, struct frame *, Lisp_Object, bool);
3433int lookup_basic_face (struct frame *, int); 3433int lookup_basic_face (struct window *, struct frame *, int);
3434int smaller_face (struct frame *, int, int); 3434int smaller_face (struct frame *, int, int);
3435int face_with_height (struct frame *, int, int); 3435int face_with_height (struct frame *, int, int);
3436int lookup_derived_face (struct frame *, Lisp_Object, int, bool); 3436int lookup_derived_face (struct window *, struct frame *,
3437 Lisp_Object, int, bool);
3437void init_frame_faces (struct frame *); 3438void init_frame_faces (struct frame *);
3438void free_frame_faces (struct frame *); 3439void free_frame_faces (struct frame *);
3439void recompute_basic_faces (struct frame *); 3440void 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);
3444int face_at_string_position (struct window *, Lisp_Object, ptrdiff_t, ptrdiff_t, 3445int 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);
3446int merge_faces (struct frame *, Lisp_Object, int, int); 3447int merge_faces (struct window *, Lisp_Object, int, int);
3447int compute_char_face (struct frame *, int, Lisp_Object); 3448int compute_char_face (struct frame *, int, Lisp_Object);
3448void free_all_realized_faces (Lisp_Object); 3449void free_all_realized_faces (Lisp_Object);
3449extern char unspecified_fg[], unspecified_bg[]; 3450extern char unspecified_fg[], unspecified_bg[];