Fix vertical cursor motion with wide images and line numbers
* src/xdisp.c (produce_image_glyph): When cropping an image that exceeds the window's right edge, account for the screen estate taken by line-number display. (Bug#77217)
This commit is contained in:
parent
8f7790a95e
commit
1e68351d56
1 changed files with 5 additions and 3 deletions
|
@ -31956,12 +31956,14 @@ produce_image_glyph (struct it *it)
|
|||
word-wrap, unless the image starts at column zero, because
|
||||
wrapping correctly needs the real pixel width of the image. */
|
||||
if ((it->line_wrap != WORD_WRAP
|
||||
|| it->hpos == 0
|
||||
|| it->hpos == (0 + (it->lnum_width ? it->lnum_width + 2 : 0))
|
||||
/* Always crop images larger than the window-width, minus 1 space. */
|
||||
|| it->pixel_width > it->last_visible_x - FRAME_COLUMN_WIDTH (it->f))
|
||||
|| it->pixel_width > (it->last_visible_x - it->lnum_pixel_width
|
||||
- FRAME_COLUMN_WIDTH (it->f)))
|
||||
&& (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->hpos == (0 + (it->lnum_width ? it->lnum_width + 2 : 0))
|
||||
|| it->pixel_width > it->last_visible_x / 4))
|
||||
{
|
||||
it->pixel_width -= crop;
|
||||
slice.width -= crop;
|
||||
|
|
Loading…
Add table
Reference in a new issue