From: Eli Zaretskii Date: Sat, 24 Jun 2017 16:40:41 +0000 (+0300) Subject: Move additional hscrolling code into a suitable 'if' X-Git-Tag: emacs-26.0.90~518^2~156^2~24 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=0d5c713a6b21cd3bd8a232ff35924c65cd3cce6b;p=emacs.git 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. --- 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; + } } }