static void iterate_out_of_display_property (struct it *);
static void pop_it (struct it *);
static void redisplay_internal (void);
-static bool echo_area_display (bool);
+static void echo_area_display (bool);
static void redisplay_windows (Lisp_Object);
static void redisplay_window (Lisp_Object, bool);
static Lisp_Object redisplay_window_error (Lisp_Object);
}
-/* Redisplay the echo area of the selected frame. If UPDATE_FRAME_P,
- update selected_frame. Value is true if the mini-windows height
- has been changed. */
+/* Redisplay the echo area of the selected frame. If UPDATE_FRAME_P, update
+ selected_frame. Value is the affected frame if the mini-windows height has
+ been changed. */
-static bool
+static void
echo_area_display (bool update_frame_p)
{
Lisp_Object mini_window;
/* Don't display if frame is invisible or not yet initialized. */
if (!FRAME_VISIBLE_P (f) || !f->glyphs_initialized_p)
- return false;
+ return;
#ifdef HAVE_WINDOW_SYSTEM
/* When Emacs starts, selected_frame may be the initial terminal
frame. If we let this through, a message would be displayed on
the terminal. */
if (FRAME_INITIAL_P (XFRAME (selected_frame)))
- return false;
+ return;
#endif /* HAVE_WINDOW_SYSTEM */
/* Redraw garbaged frames. */
pending input. */
ptrdiff_t count = SPECPDL_INDEX ();
specbind (Qredisplay_dont_pause, Qt);
- windows_or_buffers_changed = 44;
+ fset_redisplay (f);
redisplay_internal ();
unbind_to (count, Qnil);
}
if (EQ (mini_window, selected_window))
CHARPOS (this_line_start_pos) = 0;
- return window_height_changed_p;
+ if (window_height_changed_p)
+ {
+ fset_redisplay (f);
+
+ /* If window configuration was changed, frames may have been
+ marked garbaged. Clear them or we will experience
+ surprises wrt scrolling.
+ FIXME: How/why/when? */
+ clear_garbaged_frames ();
+ }
}
/* True if W's buffer was changed but not saved. */
echo-area doesn't show through. */
&& !MINI_WINDOW_P (XWINDOW (selected_window))))
{
- bool window_height_changed_p = echo_area_display (false);
+ echo_area_display (false);
if (message_cleared_p)
update_miniwindow_p = true;
the echo area. */
if (!display_last_displayed_message_p)
message_cleared_p = false;
-
- if (window_height_changed_p)
- {
- windows_or_buffers_changed = 50;
-
- /* If window configuration was changed, frames may have been
- marked garbaged. Clear them or we will experience
- surprises wrt scrolling. */
- clear_garbaged_frames ();
- }
}
else if (EQ (selected_window, minibuf_window)
&& (current_buffer->clip_changed || window_outdated (w))