]> code.delx.au - gnu-emacs/blobdiff - src/window.h
(mark_byte_stack): Use XMARKBIT and XMARK.
[gnu-emacs] / src / window.h
index 8e8147736bc51baf87822f22dff14d8ca7456e71..ca507cd16259b673d8b69a4e15abc8408d3c5936 100644 (file)
@@ -126,7 +126,9 @@ struct window
        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;
@@ -202,6 +204,10 @@ struct window
     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
@@ -255,6 +261,16 @@ struct window
     /* 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.  */
@@ -357,8 +373,12 @@ extern int window_height P_ ((Lisp_Object));
 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
@@ -393,25 +413,6 @@ extern int minibuf_level;
 
 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.  */