From 50f814f59db0d3169a7bb60e4b570b0635d2bfec Mon Sep 17 00:00:00 2001 From: "Kim F. Storm" Date: Thu, 14 Sep 2006 09:37:44 +0000 Subject: [PATCH] (produce_image_glyph): Automatically crop wide images at right window edge so we can draw the cursor on the same row to avoid confusing redisplay by placing the cursor outside the visible window area. --- src/xdisp.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/xdisp.c b/src/xdisp.c index dbc416afd9a..6efd0958002 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -19786,7 +19786,7 @@ produce_image_glyph (it) { struct image *img; struct face *face; - int glyph_ascent; + int glyph_ascent, crop; struct glyph_slice slice; xassert (it->what == IT_IMAGE); @@ -19894,6 +19894,15 @@ produce_image_glyph (it) take_vertical_position_into_account (it); + /* Automatically crop wide image glyphs at right edge so we can + draw the cursor on same display row. */ + if ((crop = it->pixel_width - (it->last_visible_x - it->current_x), crop > 0) + && (it->hpos == 0 || it->pixel_width > it->last_visible_x / 4)) + { + it->pixel_width -= crop; + slice.width -= crop; + } + if (it->glyph_row) { struct glyph *glyph; -- 2.39.2