From 10a07952dc440e65684d1f45dd9a752b6b26ea80 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Fri, 7 Oct 2005 07:38:12 +0000 Subject: [PATCH] (struct glyph_string): Rename member for_overlaps_p to for_overlaps. Now occupy 3 bits. (OVERLAPS_PRED, OVERLAPS_SUCC, OVERLAPS_BOTH) (OVERLAPS_ERASED_CURSOR): New defines. (struct redisplay_interface): Add new OVERLAPS arg to member fix_overlapping_area. (x_fix_overlapping_area): Add new OVERLAPS arg. (get_glyph_string_clip_rects): Add extern. --- src/dispextern.h | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/dispextern.h b/src/dispextern.h index 2fa33e87ebb..63922183a0b 100644 --- a/src/dispextern.h +++ b/src/dispextern.h @@ -1182,10 +1182,18 @@ struct glyph_string stipple pattern. */ unsigned stippled_p : 1; - /* 1 means only the foreground of this glyph string must be drawn, - and we should use the physical height of the line this glyph - string appears in as clip rect. */ - unsigned for_overlaps_p : 1; +#define OVERLAPS_PRED (1 << 0) +#define OVERLAPS_SUCC (1 << 1) +#define OVERLAPS_BOTH (OVERLAPS_PRED | OVERLAPS_SUCC) +#define OVERLAPS_ERASED_CURSOR (1 << 2) + /* Non-zero means only the foreground of this glyph string must be + drawn, and we should use the physical height of the line this + glyph string appears in as clip rect. If the value is + OVERLAPS_ERASED_CURSOR, the clip rect is restricted to the rect + of the erased cursor. OVERLAPS_PRED and OVERLAPS_SUCC mean we + draw overlaps with the preceding and the succeeding rows, + respectively. */ + unsigned for_overlaps : 3; /* The GC to use for drawing this glyph string. */ #if defined(HAVE_X_WINDOWS) || defined(MAC_OS) @@ -2266,7 +2274,7 @@ struct redisplay_interface This function is called from redraw_overlapping_rows after desired rows have been made current. */ void (*fix_overlapping_area) P_ ((struct window *w, struct glyph_row *row, - enum glyph_row_area area)); + enum glyph_row_area area, int)); #ifdef HAVE_WINDOW_SYSTEM @@ -2664,7 +2672,7 @@ extern int x_stretch_cursor_p; extern struct cursor_pos output_cursor; extern void x_fix_overlapping_area P_ ((struct window *, struct glyph_row *, - enum glyph_row_area)); + enum glyph_row_area, int)); extern void draw_phys_cursor_glyph P_ ((struct window *, struct glyph_row *, enum draw_glyphs_face)); @@ -2682,6 +2690,8 @@ extern void x_clear_cursor P_ ((struct window *)); extern void x_draw_vertical_border P_ ((struct window *w)); extern void frame_to_window_pixel_xy P_ ((struct window *, int *, int *)); +extern int get_glyph_string_clip_rects P_ ((struct glyph_string *, + NativeRectangle *, int)); extern void get_glyph_string_clip_rect P_ ((struct glyph_string *, NativeRectangle *nr)); extern Lisp_Object find_hot_spot P_ ((Lisp_Object, int, int)); -- 2.39.2