changeset 80647:be179fc25735

(redisplay_window): Check return value of compute_window_start_on_continuation_line before forcing a window start.
author Chong Yidong <cyd@stupidchicken.com>
date Mon, 28 Jul 2008 19:41:11 +0000
parents 32f84c66697a
children ab9dc4b31ef3
files src/xdisp.c
diffstat 1 files changed, 9 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/xdisp.c	Mon Jul 28 19:40:22 2008 +0000
+++ b/src/xdisp.c	Mon Jul 28 19:41:11 2008 +0000
@@ -13239,14 +13239,19 @@
 	  && NILP (do_mouse_tracking)
 	  && CHARPOS (startp) > BEGV
 	  && CHARPOS (startp) > BEG + save_beg_unchanged
-	  && CHARPOS (startp) <= Z - save_end_unchanged)
+	  && CHARPOS (startp) <= Z - save_end_unchanged
+	  /* Even if w->start_at_line_beg is nil, a new window may
+	     start at a line_beg, since that's how set_buffer_window
+	     sets it.  So, we need to check the return value of
+	     compute_window_start_on_continuation_line.  (See also
+	     bug#197).  */
+	  && XMARKER (w->start)->buffer == current_buffer
+	  && compute_window_start_on_continuation_line (w))
 	{
 	  w->force_start = Qt;
-	  if (XMARKER (w->start)->buffer == current_buffer)
-	    compute_window_start_on_continuation_line (w);
 	  SET_TEXT_POS_FROM_MARKER (startp, w->start);
 	  goto force_start;
-	}
+      	}
 
 #if GLYPH_DEBUG
       debug_method_add (w, "same window start");