set up for it in advance. Set by scrolling commands. */
Lisp_Object force_start;
/* Non-nil means we have explicitly changed the value of start,
- but that the next redisplay is not obliged to use the new value. */
+ but that the next redisplay is not obliged to use the new value.
+ This is used in Fdelete_other_windows to force a call to
+ Vwindow_scroll_functions. */
Lisp_Object optional_new_start;
/* Number of columns display within the window is scrolled to the left. */
Lisp_Object hscroll;
Lisp_Object redisplay_end_trigger;
/* Non-nil means don't delete this window for becoming "too small". */
Lisp_Object too_small_ok;
+
+ /* Original window height and top before mini-window was
+ enlarged. */
+ Lisp_Object orig_height, orig_top;
/* No Lisp data may follow below this point without changing
mark_object in alloc.c. The member current_matrix must be the
/* Z_BYTE - the buffer position of the last glyph in the current matrix
of W. Only valid if WINDOW_END_VALID is not nil. */
int window_end_bytepos;
+
+ /* 1 means the window start of this window is frozen and may not
+ be changed during redisplay. If point is not in the window,
+ accept that. */
+ unsigned frozen_window_start_p : 1;
+
+ /* 1 means that this window's height is temporarily fixed. Used
+ in resize_mini_window to precent resizing selected_window, if
+ possible. */
+ unsigned height_fixed_p : 1;
};
/* 1 if W is a minibuffer window. */
extern int window_width P_ ((Lisp_Object));
extern void set_window_height P_ ((Lisp_Object, int, int));
extern void set_window_width P_ ((Lisp_Object, int, int));
-extern void change_window_height P_ ((int, int));
extern void delete_all_subwindows P_ ((struct window *));
+extern void freeze_window_starts P_ ((struct frame *, int));
+extern void foreach_window ();
+extern void grow_mini_window P_ ((struct window *, int));
+extern void shrink_mini_window P_ ((struct window *));
+
/* Make WINDOW display BUFFER as its contents. RUN_HOOKS_P non-zero
means it's allowed to run hooks. See make_frame for a case where
extern int update_mode_lines;
-/* Minimum value of GPT - BEG since last redisplay that finished. */
-
-extern int beg_unchanged;
-
-/* Minimum value of Z - GPT since last redisplay that finished. */
-
-extern int end_unchanged;
-
-/* MODIFF as of last redisplay that finished; if it matches MODIFF,
- beg_unchanged and end_unchanged contain no useful information. */
-
-extern int unchanged_modified;
-
-/* BUF_OVERLAY_MODIFF of current buffer, as of last redisplay that
- finished; if it matches BUF_OVERLAY_MODIFF, beg_unchanged and
- end_unchanged contain no useful information. */
-
-extern int overlay_unchanged_modified;
-
/* Nonzero if BEGV - BEG or Z - ZV of current buffer has changed since
last redisplay that finished. */