# HG changeset patch # User Kim F. Storm # Date 1101052138 0 # Node ID d1d4d5846215c2c5bc5fffccbbdf43c151110b93 # Parent 972f6be01006a0f086e6a0bb9a8f50a0eedfd46c (w32_clip_to_row): Add area arg. Callers changed. (x_draw_hollow_cursor, x_draw_bar_cursor): Clip to TEXT_AREA. diff -r 972f6be01006 -r d1d4d5846215 src/w32term.c --- a/src/w32term.c Sun Nov 21 15:47:55 2004 +0000 +++ b/src/w32term.c Sun Nov 21 15:48:58 2004 +0000 @@ -260,7 +260,7 @@ static void x_draw_hollow_cursor P_ ((struct window *, struct glyph_row *)); static void x_draw_bar_cursor P_ ((struct window *, struct glyph_row *, int, enum text_cursor_kinds)); -static void w32_clip_to_row P_ ((struct window *, struct glyph_row *, HDC)); +static void w32_clip_to_row P_ ((struct window *, struct glyph_row *, int, HDC)); static Lisp_Object Qvendor_specific_keysyms; @@ -691,12 +691,12 @@ int oldVH = row->visible_height; row->visible_height = p->h; row->y -= rowY - p->y; - w32_clip_to_row (w, row, hdc); + w32_clip_to_row (w, row, -1, hdc); row->y = oldY; row->visible_height = oldVH; } else - w32_clip_to_row (w, row, hdc); + w32_clip_to_row (w, row, -1, hdc); if (p->bx >= 0 && !p->overlay_p) { @@ -4912,18 +4912,19 @@ mode lines must be clipped to the whole window. */ static void -w32_clip_to_row (w, row, hdc) +w32_clip_to_row (w, row, area, hdc) struct window *w; struct glyph_row *row; + int area; HDC hdc; { struct frame *f = XFRAME (WINDOW_FRAME (w)); RECT clip_rect; - int window_y, window_width; - - window_box (w, -1, 0, &window_y, &window_width, 0); - - clip_rect.left = WINDOW_TO_FRAME_PIXEL_X (w, 0); + int window_x, window_y, window_width; + + window_box (w, area, &window_x, &window_y, &window_width, 0); + + clip_rect.left = window_x; clip_rect.top = WINDOW_TO_FRAME_PIXEL_Y (w, row->y); clip_rect.top = max (clip_rect.top, window_y); clip_rect.right = clip_rect.left + window_width; @@ -4983,7 +4984,7 @@ rect.right = rect.left + wd; hdc = get_frame_dc (f); /* Set clipping, draw the rectangle, and reset clipping again. */ - w32_clip_to_row (w, row, hdc); + w32_clip_to_row (w, row, TEXT_AREA, hdc); FrameRect (hdc, &rect, hb); DeleteObject (hb); w32_set_clip_rectangle (hdc, NULL); @@ -5049,7 +5050,7 @@ hdc = get_frame_dc (f); - w32_clip_to_row (w, row, hdc); + w32_clip_to_row (w, row, TEXT_AREA, hdc); if (kind == BAR_CURSOR) {