]> git.eshelyaron.com Git - emacs.git/commitdiff
Another fix for scroll-conservatively and overlay strings
authorEli Zaretskii <eliz@gnu.org>
Sun, 14 Aug 2016 18:25:52 +0000 (21:25 +0300)
committerEli Zaretskii <eliz@gnu.org>
Sun, 14 Aug 2016 18:25:52 +0000 (21:25 +0300)
* src/xdisp.c (redisplay_window): Handle also the case where the
calculated window-start point has an overlay string touching it.
(Bug#24179)

src/xdisp.c

index a8376af978f9922532ee0173bd1acfd7c7aebb38..5eaa80905a8588d22ab4ec9d224918d2d3dba4fa 100644 (file)
@@ -16957,7 +16957,8 @@ redisplay_window (Lisp_Object window, bool just_this_one_p)
          try_window (window, it.current.pos, 0);
        }
       else if (scroll_conservatively > SCROLL_LIMIT
-              && it.method == GET_FROM_STRING
+              && (it.method == GET_FROM_STRING
+                  || overlay_touches_p (IT_CHARPOS (it)))
               && IT_CHARPOS (it) < ZV)
        {
          /* If the window starts with a before-string that spans more
@@ -16973,7 +16974,7 @@ redisplay_window (Lisp_Object window, bool just_this_one_p)
          clear_glyph_matrix (w->desired_matrix);
          do {
            move_it_by_lines (&it, 1);
-         } while (IT_CHARPOS (it) == pos0 && it.method == GET_FROM_STRING);
+         } while (IT_CHARPOS (it) == pos0);
          try_window (window, it.current.pos, 0);
        }
       else