[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/xterm.c
From: |
Kim F . Storm |
Subject: |
[Emacs-diffs] Changes to emacs/src/xterm.c |
Date: |
Thu, 27 Jan 2005 17:34:05 -0500 |
Index: emacs/src/xterm.c
diff -c emacs/src/xterm.c:1.858 emacs/src/xterm.c:1.859
*** emacs/src/xterm.c:1.858 Thu Jan 27 17:00:35 2005
--- emacs/src/xterm.c Thu Jan 27 22:34:05 2005
***************
*** 7150,7156 ****
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 = max (clip_rect.y, window_y);
clip_rect.width = window_width;
clip_rect.height = row->visible_height;
--- 7150,7156 ----
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, 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,7208 ****
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. */
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--;
/* The foreground of cursor_gc is typically the same as the normal
background color, which can cause the cursor box to be invisible. */
--- 7180,7189 ----
if (cursor_glyph == NULL)
return;
! /* Compute frame-relative coordinates for phys cursor. */
x = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x);
! 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. */