diff options
| author | Eli Zaretskii | 2011-05-21 17:22:14 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2011-05-21 17:22:14 +0300 |
| commit | fc6f18ceeaae3c3eb4d68120899e16c2fc73ea86 (patch) | |
| tree | dbbc17ffa38f01c0fe0184605569c1051f6eec8d /src/dispextern.h | |
| parent | 683a44f77c8c83febe1ab7ebe7fc32d26fc71bcd (diff) | |
| download | emacs-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.h | 5 |
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 | ||
| 2948 | extern void bidi_init_it (EMACS_INT, EMACS_INT, struct bidi_it *); | 2949 | extern void bidi_init_it (EMACS_INT, EMACS_INT, int, struct bidi_it *); |
| 2949 | extern void bidi_move_to_visually_next (struct bidi_it *); | 2950 | extern void bidi_move_to_visually_next (struct bidi_it *); |
| 2950 | extern void bidi_paragraph_init (bidi_dir_t, struct bidi_it *, int); | 2951 | extern void bidi_paragraph_init (bidi_dir_t, struct bidi_it *, int); |
| 2951 | extern int bidi_mirror_char (int); | 2952 | extern int bidi_mirror_char (int); |
| @@ -3006,7 +3007,7 @@ extern void reseat_at_previous_visible_line_start (struct it *); | |||
| 3006 | extern Lisp_Object lookup_glyphless_char_display (int, struct it *); | 3007 | extern Lisp_Object lookup_glyphless_char_display (int, struct it *); |
| 3007 | extern int calc_pixel_width_or_height (double *, struct it *, Lisp_Object, | 3008 | extern int calc_pixel_width_or_height (double *, struct it *, Lisp_Object, |
| 3008 | struct font *, int, int *); | 3009 | struct font *, int, int *); |
| 3009 | extern EMACS_INT compute_display_string_pos (EMACS_INT); | 3010 | extern EMACS_INT compute_display_string_pos (EMACS_INT, int); |
| 3010 | extern EMACS_INT compute_display_string_end (EMACS_INT); | 3011 | extern EMACS_INT compute_display_string_end (EMACS_INT); |
| 3011 | 3012 | ||
| 3012 | #ifdef HAVE_WINDOW_SYSTEM | 3013 | #ifdef HAVE_WINDOW_SYSTEM |