aboutsummaryrefslogtreecommitdiffstats
path: root/src/dispextern.h
diff options
context:
space:
mode:
authorEli Zaretskii2011-05-21 17:22:14 +0300
committerEli Zaretskii2011-05-21 17:22:14 +0300
commitfc6f18ceeaae3c3eb4d68120899e16c2fc73ea86 (patch)
treedbbc17ffa38f01c0fe0184605569c1051f6eec8d /src/dispextern.h
parent683a44f77c8c83febe1ab7ebe7fc32d26fc71bcd (diff)
downloademacs-fc6f18ceeaae3c3eb4d68120899e16c2fc73ea86.tar.gz
emacs-fc6f18ceeaae3c3eb4d68120899e16c2fc73ea86.zip
Discovery of replacing display properties now uses the same code
as the display engine. Tested OK with display properties whose value is a list. src/dispextern.h (struct bidi_it): New member frame_window_p. (bidi_init_it, compute_display_string_pos): Update prototypes. src/bidi.c (bidi_fetch_char): Accept additional argument FRAME_WINDOW_P and pass it to compute_display_string_pos. All callers changed. (bidi_init_it): Accept additional argument FRAME_WINDOW_P and use it to initialize the frame_window_p member of struct bidi_it. src/xdisp.c (handle_display_spec): New function, refactored from the last portion of handle_display_prop. (compute_display_string_pos): Accept additional argument FRAME_WINDOW_P. Call handle_display_spec to determine whether the value of a `display' property is a "replacing spec". (handle_single_display_spec): Accept 2 additional arguments BUFPOS and FRAME_WINDOW_P. If IT is NULL, don't set up the iterator from the display property, but just return a value indicating whether the display property will replace the characters it covers. (Fcurrent_bidi_paragraph_direction): Initialize the nchars and frame_window_p members of struct bidi_it.
Diffstat (limited to 'src/dispextern.h')
-rw-r--r--src/dispextern.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/dispextern.h b/src/dispextern.h
index f5036169f75..6c09f21a78f 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -1847,6 +1847,7 @@ struct bidi_it {
1847 int first_elt; /* if non-zero, examine current char first */ 1847 int first_elt; /* if non-zero, examine current char first */
1848 bidi_dir_t paragraph_dir; /* current paragraph direction */ 1848 bidi_dir_t paragraph_dir; /* current paragraph direction */
1849 int new_paragraph; /* if non-zero, we expect a new paragraph */ 1849 int new_paragraph; /* if non-zero, we expect a new paragraph */
1850 int frame_window_p; /* non-zero if displaying on a GUI frame */
1850 EMACS_INT separator_limit; /* where paragraph separator should end */ 1851 EMACS_INT separator_limit; /* where paragraph separator should end */
1851 EMACS_INT disp_pos; /* position of display string after ch */ 1852 EMACS_INT disp_pos; /* position of display string after ch */
1852}; 1853};
@@ -2945,7 +2946,7 @@ enum tool_bar_item_image
2945 2946
2946/* Defined in bidi.c */ 2947/* Defined in bidi.c */
2947 2948
2948extern void bidi_init_it (EMACS_INT, EMACS_INT, struct bidi_it *); 2949extern void bidi_init_it (EMACS_INT, EMACS_INT, int, struct bidi_it *);
2949extern void bidi_move_to_visually_next (struct bidi_it *); 2950extern void bidi_move_to_visually_next (struct bidi_it *);
2950extern void bidi_paragraph_init (bidi_dir_t, struct bidi_it *, int); 2951extern void bidi_paragraph_init (bidi_dir_t, struct bidi_it *, int);
2951extern int bidi_mirror_char (int); 2952extern int bidi_mirror_char (int);
@@ -3006,7 +3007,7 @@ extern void reseat_at_previous_visible_line_start (struct it *);
3006extern Lisp_Object lookup_glyphless_char_display (int, struct it *); 3007extern Lisp_Object lookup_glyphless_char_display (int, struct it *);
3007extern int calc_pixel_width_or_height (double *, struct it *, Lisp_Object, 3008extern int calc_pixel_width_or_height (double *, struct it *, Lisp_Object,
3008 struct font *, int, int *); 3009 struct font *, int, int *);
3009extern EMACS_INT compute_display_string_pos (EMACS_INT); 3010extern EMACS_INT compute_display_string_pos (EMACS_INT, int);
3010extern EMACS_INT compute_display_string_end (EMACS_INT); 3011extern EMACS_INT compute_display_string_end (EMACS_INT);
3011 3012
3012#ifdef HAVE_WINDOW_SYSTEM 3013#ifdef HAVE_WINDOW_SYSTEM