ptrdiff_t count_outer = SPECPDL_INDEX ();
record_unwind_protect_void (window_change_record);
+ specbind (Qinhibit_redisplay, Qt);
FOR_EACH_FRAME (tail, frame)
{
clear_garbaged_frames ();
}
+ if (!NILP (Vrun_hooks))
+ run_window_change_functions ();
+
if (windows_or_buffers_changed && !update_mode_lines)
/* Code that sets windows_or_buffers_changed doesn't distinguish whether
only the windows's contents needs to be refreshed, or whether the
&& (w = XWINDOW (selected_window)) != sw)
goto retry;
- if (!NILP (Vrun_hooks))
- {
- run_window_change_functions ();
-
- /* If windows or buffers changed or selected_window
- changed, redisplay again. */
- if ((windows_or_buffers_changed)
- || (WINDOWP (selected_window)
- && (w = XWINDOW (selected_window)) != sw))
- goto retry;
- }
-
/* We used to always goto end_of_redisplay here, but this
isn't enough if we have a blinking cursor. */
if (w->cursor_off_p == w->last_cursor_off_p)
&& (w = XWINDOW (selected_window)) != sw))
goto retry;
- if (!NILP (Vrun_hooks))
- {
- run_window_change_functions ();
-
- /* If windows or buffers changed or selected_window changed,
- redisplay again. */
- if ((windows_or_buffers_changed)
- || (WINDOWP (selected_window)
- && (w = XWINDOW (selected_window)) != sw))
- goto retry;
- }
-
/* Clear the face and image caches.
We used to do this only if consider_all_windows_p. But the cache