summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog2
-rw-r--r--src/xdisp.c12
2 files changed, 9 insertions, 5 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index b9451fb9006..28af5026928 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -2,6 +2,8 @@
* xdisp.c (draw_glyphs): Set clipping to highlight boundaries.
[Backport]
+ (erase_phys_cursor): Fix confusion between window-relative and
+ text area-relative x-coordinates. [Backport]
2014-10-20 Glenn Morris <rgm@gnu.org>
diff --git a/src/xdisp.c b/src/xdisp.c
index da56885d2eb..f0726ecce70 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -27467,7 +27467,7 @@ erase_phys_cursor (struct window *w)
/* Maybe clear the display under the cursor. */
if (w->phys_cursor_type == HOLLOW_BOX_CURSOR)
{
- int x, y, left_x;
+ int x, y;
int header_line_height = WINDOW_HEADER_LINE_HEIGHT (w);
int width;
@@ -27476,13 +27476,15 @@ erase_phys_cursor (struct window *w)
goto mark_cursor_off;
width = cursor_glyph->pixel_width;
- left_x = window_box_left_offset (w, TEXT_AREA);
x = w->phys_cursor.x;
- if (x < left_x)
- width -= left_x - x;
+ if (x < 0)
+ {
+ width += x;
+ x = 0;
+ }
width = min (width, window_box_width (w, TEXT_AREA) - x);
y = WINDOW_TO_FRAME_PIXEL_Y (w, max (header_line_height, cursor_row->y));
- x = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, max (x, left_x));
+ x = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, x);
if (width > 0)
FRAME_RIF (f)->clear_frame_area (f, x, y, width, cursor_row->visible_height);