changeset 19120:1ba82399f2b1

(redisplay_internal): Count number of visible frames instead of number of frames that were redisplayed. (redisplay_window): Fix previous change.
author Richard M. Stallman <rms@gnu.org>
date Mon, 04 Aug 1997 03:04:24 +0000
parents e772b77b919e
children 8fe7aa3f4ca2
files src/xdisp.c
diffstat 1 files changed, 8 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/src/xdisp.c	Mon Aug 04 03:02:19 1997 +0000
+++ b/src/xdisp.c	Mon Aug 04 03:04:24 1997 +0000
@@ -870,7 +870,7 @@
   int all_windows;
   register int tlbufpos, tlendpos;
   struct position pos;
-  int number_of_frames_redisplayed;
+  int number_of_visible_frames;
 
   if (noninteractive)
     return;
@@ -900,10 +900,14 @@
   {
     Lisp_Object tail, frame;
 
+    number_of_visible_frames = 0;
+
     FOR_EACH_FRAME (tail, frame)
       {
 	FRAME_SAMPLE_VISIBILITY (XFRAME (frame));
 
+	number_of_visible_frames++;
+
 	/* Clear out all the display lines in which we will generate the
 	   glyphs to display.  */
 	init_desired_glyphs (XFRAME (frame));
@@ -971,9 +975,6 @@
 		  Fmarker_position (XBUFFER (w->buffer)->mark))))
     this_line_bufpos = -1;
 
-  /* This is in case we goto update, below.  */
-  number_of_frames_redisplayed = 1;
-
   tlbufpos = this_line_bufpos;
   tlendpos = this_line_endpos;
   if (!all_windows && tlbufpos > 0 && NILP (w->update_mode_line)
@@ -1148,7 +1149,6 @@
       /* Recompute # windows showing selected buffer.
 	 This will be incremented each time such a window is displayed.  */
       buffer_shared = 0;
-      number_of_frames_redisplayed = 0;
 
       FOR_EACH_FRAME (tail, frame)
 	{
@@ -1162,10 +1162,7 @@
 		(*condemn_scroll_bars_hook) (f);
 
 	      if (FRAME_VISIBLE_P (f))
-		{
-		  redisplay_windows (FRAME_ROOT_WINDOW (f), preserve_echo_area);
-		  number_of_frames_redisplayed++;
-		}
+		redisplay_windows (FRAME_ROOT_WINDOW (f), preserve_echo_area);
 
 	      /* Any scroll bars which redisplay_windows should have nuked
 		 should now go away.  */
@@ -1179,7 +1176,6 @@
       redisplay_window (selected_window, 1, preserve_echo_area);
       if (!WINDOW_FULL_WIDTH_P (w))
 	preserve_other_columns (w);
-      number_of_frames_redisplayed = 1;
     }
 
 update: 
@@ -1345,7 +1341,7 @@
 	    new_count++;
 	}
 
-      if (new_count != number_of_frames_redisplayed)
+      if (new_count != number_of_visible_frames)
 	windows_or_buffers_changed++;
     }
 
@@ -3615,7 +3611,7 @@
 		  this_line_bufpos = start;
 		  this_line_buffer = current_buffer;
 		  this_line_vpos = cursor_vpos;
-		  this_line_start_hpos = hpos;
+		  this_line_start_hpos = hpos - WINDOW_LEFT_MARGIN (w);
 		  this_line_endpos = Z - lastpos;
 		}
 	      else