]> git.eshelyaron.com Git - emacs.git/commitdiff
Move additional hscrolling code into a suitable 'if'
authorEli Zaretskii <eliz@gnu.org>
Sat, 24 Jun 2017 16:40:41 +0000 (19:40 +0300)
committerEli Zaretskii <eliz@gnu.org>
Sat, 24 Jun 2017 16:40:41 +0000 (19:40 +0300)
* src/xdisp.c (hscroll_window_tree): Make additional calculations
regarding glyphs produced for line numbers conditional on
line-number display.

src/xdisp.c

index d067359539087b5cafa856e6b7b1b6407dc5957f..6fa1d841ee20e49d2650e8f5a9a479a95ee88520 100644 (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;
+                   }
                }
            }