summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKim F. Storm <storm@cua.dk>2005-01-27 22:34:05 +0000
committerKim F. Storm <storm@cua.dk>2005-01-27 22:34:05 +0000
commitdbd8ee19133e033e98ced28b52bd05eaf1e19dda (patch)
tree6a73cbe36a56ceb79f8dc9058fed1752690ccb21 /src
parent2049265a5b75d5d5b4899116c27dfaafdbcd13e3 (diff)
downloademacs-dbd8ee19133e033e98ced28b52bd05eaf1e19dda.tar.gz
(x_clip_to_row): Ensure y >= 0.
(x_draw_hollow_cursor): Use get_phys_cursor_geometry.
Diffstat (limited to 'src')
-rw-r--r--src/xterm.c27
1 files changed, 4 insertions, 23 deletions
diff --git a/src/xterm.c b/src/xterm.c
index 49e635c0fa3..2db3379a264 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -7150,7 +7150,7 @@ x_clip_to_row (w, row, area, gc)
window_box (w, area, &window_x, &window_y, &window_width, 0);
clip_rect.x = window_x;
- clip_rect.y = WINDOW_TO_FRAME_PIXEL_Y (w, row->y);
+ clip_rect.y = WINDOW_TO_FRAME_PIXEL_Y (w, max (0, row->y));
clip_rect.y = max (clip_rect.y, window_y);
clip_rect.width = window_width;
clip_rect.height = row->visible_height;
@@ -7180,29 +7180,10 @@ x_draw_hollow_cursor (w, row)
if (cursor_glyph == NULL)
return;
- /* Compute the width of the rectangle to draw. If on a stretch
- glyph, and `x-stretch-block-cursor' is nil, don't draw a
- rectangle as wide as the glyph, but use a canonical character
- width instead. */
- wd = cursor_glyph->pixel_width - 1;
- if (cursor_glyph->type == STRETCH_GLYPH
- && !x_stretch_cursor_p)
- wd = min (FRAME_COLUMN_WIDTH (f), wd);
- w->phys_cursor_width = wd;
-
- /* Compute frame-relative coordinates from window-relative
- coordinates. */
+ /* Compute frame-relative coordinates for phys cursor. */
x = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x);
- y = WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y);
-
- /* Compute the proper height and ascent of the rectangle, based
- on the actual glyph. Using the full height of the row looks
- bad when there are tall images on that row. */
- h = max (min (FRAME_LINE_HEIGHT (f), row->height),
- cursor_glyph->ascent + cursor_glyph->descent);
- if (h < row->height)
- y += row->ascent /* - w->phys_cursor_ascent */ + cursor_glyph->descent - h;
- h--;
+ y = get_phys_cursor_geometry (w, row, cursor_glyph, &h);
+ wd = w->phys_cursor_width;
/* The foreground of cursor_gc is typically the same as the normal
background color, which can cause the cursor box to be invisible. */