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
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 free_window_starts P_ ((struct frame *, int));
+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