mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-13 15:00:42 -08:00
Improve display of tabs with line numbers
* src/xdisp.c (x_produce_glyphs): Improve calculation of next tab stop in hscrolled lines. Prevent aborts in compute_line_metrics.
This commit is contained in:
parent
fb62728b7a
commit
b5ce3100a8
1 changed files with 5 additions and 4 deletions
|
|
@ -28028,18 +28028,19 @@ x_produce_glyphs (struct it *it)
|
|||
int x = it->current_x + it->continuation_lines_width;
|
||||
int x0 = x;
|
||||
/* Adjust for line numbers, if needed. */
|
||||
if (!NILP (Vdisplay_line_numbers))
|
||||
if (!NILP (Vdisplay_line_numbers) && x0 >= it->lnum_pixel_width)
|
||||
x -= it->lnum_pixel_width;
|
||||
int next_tab_x = ((1 + x + tab_width - 1) / tab_width) * tab_width;
|
||||
if (!NILP (Vdisplay_line_numbers))
|
||||
next_tab_x += (it->lnum_pixel_width
|
||||
- it->w->hscroll * font->space_width);
|
||||
|
||||
/* If the distance from the current position to the next tab
|
||||
stop is less than a space character width, use the
|
||||
tab stop after that. */
|
||||
if (next_tab_x - x0 < font->space_width)
|
||||
next_tab_x += tab_width;
|
||||
if (!NILP (Vdisplay_line_numbers) && x0 >= it->lnum_pixel_width)
|
||||
next_tab_x += (it->lnum_pixel_width
|
||||
- ((it->w->hscroll * font->space_width)
|
||||
% tab_width));
|
||||
|
||||
it->pixel_width = next_tab_x - x0;
|
||||
it->nglyphs = 1;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue