aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJim Blandy1992-12-06 22:20:47 +0000
committerJim Blandy1992-12-06 22:20:47 +0000
commitd724d9896dcf19b4d5ed6b38548a6ac1f870839a (patch)
treef56a6abfc1d16b3625dd99702e506d98e1f84f0d /src
parent016899c07c4bc7efde1c0afef53e417a9d5c0ed7 (diff)
downloademacs-d724d9896dcf19b4d5ed6b38548a6ac1f870839a.tar.gz
emacs-d724d9896dcf19b4d5ed6b38548a6ac1f870839a.zip
* xdisp.c (redisplay): Call FRAME_SAMPLE_VISIBILITY to set the
visible and iconified flags appropriately for each frame. (message1): Call FRAME_SAMPLE_VISIBILITY to set the visible and iconified flags for the minibuffer frame. * xdisp.c (redisplay): Use FOR_EACH_FRAME to apply redisplay_windows to the root window of each frame. This makes a #ifdef MULTI_FRAME unneeded, but it also means we recompute buffer_shared from scratch even on non-MULTI_FRAME configurations. Don't skip elements of Vframe_list that aren't frames; go ahead and crash here. * xdisp.c (redisplay): Remove #ifdef MULTI_FRAME around the code which updates separate minibuffer frames specially; there's nothing there that won't work on a single-frame configuration.
Diffstat (limited to 'src')
-rw-r--r--src/xdisp.c36
1 files changed, 18 insertions, 18 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index feeca963016..c9cb8f01ea5 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -191,6 +191,7 @@ message1 (m)
191 191
192 choose_minibuf_frame (); 192 choose_minibuf_frame ();
193 minibuf_frame = WINDOW_FRAME (XWINDOW (minibuf_window)); 193 minibuf_frame = WINDOW_FRAME (XWINDOW (minibuf_window));
194 FRAME_SAMPLE_VISIBILITY (XFRAME (minibuf_frame));
194 if (FRAME_VISIBLE_P (selected_frame) 195 if (FRAME_VISIBLE_P (selected_frame)
195 && ! FRAME_VISIBLE_P (XFRAME (minibuf_frame))) 196 && ! FRAME_VISIBLE_P (XFRAME (minibuf_frame)))
196 Fmake_frame_visible (WINDOW_FRAME (XWINDOW (minibuf_window))); 197 Fmake_frame_visible (WINDOW_FRAME (XWINDOW (minibuf_window)));
@@ -346,6 +347,18 @@ redisplay ()
346 if (noninteractive) 347 if (noninteractive)
347 return; 348 return;
348 349
350 /* Set the visible flags for all frames.
351 Do this before checking for resized or garbaged frames; they want
352 to know if their frames are visible.
353 See the comment in frame.h for FRAME_SAMPLE_VISIBILITY. */
354 {
355 Lisp_Object tail;
356 FRAME_PTR f;
357
358 FOR_EACH_FRAME (tail, f)
359 FRAME_SAMPLE_VISIBILITY (f);
360 }
361
349 /* Notice any pending interrupt request to change frame size. */ 362 /* Notice any pending interrupt request to change frame size. */
350 do_pending_window_change (); 363 do_pending_window_change ();
351 364
@@ -476,28 +489,16 @@ redisplay ()
476 489
477 if (all_windows) 490 if (all_windows)
478 { 491 {
479#ifdef MULTI_FRAME
480 Lisp_Object tail; 492 Lisp_Object tail;
493 FRAME_PTR f;
481 494
482 /* Recompute # windows showing selected buffer. 495 /* Recompute # windows showing selected buffer.
483 This will be incremented each time such a window is displayed. */ 496 This will be incremented each time such a window is displayed. */
484 buffer_shared = 0; 497 buffer_shared = 0;
485 498
486 for (tail = Vframe_list; CONSP (tail); tail = XCONS (tail)->cdr) 499 FOR_EACH_FRAME (tail, f)
487 { 500 if (FRAME_VISIBLE_P (f))
488 FRAME_PTR f; 501 redisplay_windows (FRAME_ROOT_WINDOW (f));
489
490 if (XTYPE (XCONS (tail)->car) != Lisp_Frame)
491 continue;
492
493 f = XFRAME (XCONS (tail)->car);
494 if (f->visible)
495 /* Redraw its windows. */
496 redisplay_windows (FRAME_ROOT_WINDOW (f));
497 }
498#else
499 redisplay_windows (FRAME_ROOT_WINDOW (f));
500#endif /* not MULTI_FRAME */
501 } 502 }
502 else if (FRAME_VISIBLE_P (selected_frame)) 503 else if (FRAME_VISIBLE_P (selected_frame))
503 { 504 {
@@ -542,7 +543,7 @@ update:
542 { 543 {
543 if (FRAME_VISIBLE_P (selected_frame)) 544 if (FRAME_VISIBLE_P (selected_frame))
544 pause = update_frame (selected_frame, 0, 0); 545 pause = update_frame (selected_frame, 0, 0);
545#ifdef MULTI_FRAME 546
546 /* We may have called echo_area_display at the top of this 547 /* We may have called echo_area_display at the top of this
547 function. If the echo area is on another frame, that may 548 function. If the echo area is on another frame, that may
548 have put text on a frame other than the selected one, so the 549 have put text on a frame other than the selected one, so the
@@ -555,7 +556,6 @@ update:
555 if (mini_frame != selected_frame) 556 if (mini_frame != selected_frame)
556 pause |= update_frame (mini_frame, 0, 0); 557 pause |= update_frame (mini_frame, 0, 0);
557 } 558 }
558#endif
559 } 559 }
560 560
561 /* If frame does not match, prevent doing single-line-update next time. 561 /* If frame does not match, prevent doing single-line-update next time.