# HG changeset patch # User YAMAMOTO Mitsuharu # Date 1128670692 0 # Node ID bc4f9a64328d23f4091e558b03e570516bc023ac # Parent 6706ae85af7d6bc3b106cf4473812fcd29688967 (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. diff -r 6706ae85af7d -r bc4f9a64328d src/dispextern.h --- a/src/dispextern.h Fri Oct 07 06:46:05 2005 +0000 +++ b/src/dispextern.h Fri Oct 07 07:38:12 2005 +0000 @@ -1182,10 +1182,18 @@ 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 @@ 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 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_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));