[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/w32term.c
From: |
Kim F . Storm |
Subject: |
[Emacs-diffs] Changes to emacs/src/w32term.c |
Date: |
Thu, 27 Jan 2005 17:33:39 -0500 |
Index: emacs/src/w32term.c
diff -c emacs/src/w32term.c:1.222 emacs/src/w32term.c:1.223
*** emacs/src/w32term.c:1.222 Thu Jan 20 15:22:33 2005
--- emacs/src/w32term.c Thu Jan 27 22:33:39 2005
***************
*** 4937,4943 ****
struct frame *f = XFRAME (WINDOW_FRAME (w));
HDC hdc;
RECT rect;
! int wd, h;
struct glyph *cursor_glyph;
HBRUSH hb = CreateSolidBrush (f->output_data.w32->cursor_pixel);
--- 4937,4943 ----
struct frame *f = XFRAME (WINDOW_FRAME (w));
HDC hdc;
RECT rect;
! int h;
struct glyph *cursor_glyph;
HBRUSH hb = CreateSolidBrush (f->output_data.w32->cursor_pixel);
***************
*** 4947,4980 ****
if (cursor_glyph == NULL)
return;
! /* Compute frame-relative coordinates from window-relative
! coordinates. */
rect.left = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x);
! rect.top = (WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y)
! + row->ascent - w->phys_cursor_ascent);
!
! /* 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)
! rect.top += row->ascent /* - w->phys_cursor_ascent */ +
cursor_glyph->descent - h;
! h--;
!
rect.bottom = rect.top + h;
- /* 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; /* TODO: Why off by one compared with X? */
- if (cursor_glyph->type == STRETCH_GLYPH
- && !x_stretch_cursor_p)
- wd = min (FRAME_COLUMN_WIDTH (f), wd);
- w->phys_cursor_width = wd;
-
- 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, TEXT_AREA, hdc);
--- 4947,4958 ----
if (cursor_glyph == NULL)
return;
! /* Compute frame-relative coordinates for phys cursor. */
rect.left = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x);
! rect.top = get_phys_cursor_geometry (w, row, cursor_glyph, &h);
rect.bottom = rect.top + h;
+ rect.right = rect.left + w->phys_cursor_width;
hdc = get_frame_dc (f);
/* Set clipping, draw the rectangle, and reset clipping again. */
w32_clip_to_row (w, row, TEXT_AREA, hdc);