Move additional hscrolling code into a suitable 'if'

* src/xdisp.c (hscroll_window_tree): Make additional calculations
regarding glyphs produced for line numbers conditional on
line-number display.
This commit is contained in:
Eli Zaretskii
2017-06-24 19:40:41 +03:00
parent 13cc19a0a3
commit 0d5c713a6b

View File

@@ -13070,27 +13070,34 @@ hscroll_window_tree (Lisp_Object window)
bool row_r2l_p = cursor_row->reversed_p;
bool hscl = hscrolling_current_line_p (w);
int x_offset = 0;
struct glyph *g;
if (!row_r2l_p)
/* When line numbers are displayed, we need to account for
the horizontal space they consume. */
if (!NILP (Vdisplay_line_numbers))
{
for (g = cursor_row->glyphs[TEXT_AREA];
g < cursor_row->glyphs[TEXT_AREA] + cursor_row->used[TEXT_AREA];
g++)
struct glyph *g;
if (!row_r2l_p)
{
if (!(NILP (g->object) && g->charpos < 0))
break;
x_offset += g->pixel_width;
for (g = cursor_row->glyphs[TEXT_AREA];
g < cursor_row->glyphs[TEXT_AREA]
+ cursor_row->used[TEXT_AREA];
g++)
{
if (!(NILP (g->object) && g->charpos < 0))
break;
x_offset += g->pixel_width;
}
}
}
else
{
for (g = cursor_row->glyphs[TEXT_AREA] + cursor_row->used[TEXT_AREA];
g > cursor_row->glyphs[TEXT_AREA];
g--)
else
{
if (!(NILP ((g - 1)->object) && (g - 1)->charpos < 0))
break;
x_offset += (g - 1)->pixel_width;
for (g = cursor_row->glyphs[TEXT_AREA]
+ cursor_row->used[TEXT_AREA];
g > cursor_row->glyphs[TEXT_AREA];
g--)
{
if (!(NILP ((g - 1)->object) && (g - 1)->charpos < 0))
break;
x_offset += (g - 1)->pixel_width;
}
}
}