From 0d5c713a6b21cd3bd8a232ff35924c65cd3cce6b Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sat, 24 Jun 2017 19:40:41 +0300 Subject: [PATCH] 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. --- src/xdisp.c | 41 ++++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/src/xdisp.c b/src/xdisp.c index d0673595390..6fa1d841ee2 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -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; + } } } -- 2.39.2