# HG changeset patch # User Richard M. Stallman # Date 780027605 0 # Node ID c64388cd7346c1e1a8ac91f35e89c2aecdef8d60 # Parent 166ebab32ffa96723d2ea2087ce73284f1f4344f (struct saved_window_data): New slots min_width, min_height. (Fcurrent_window_configuration): Set slots from window_min_... (Fset_window_configuration): Restore them. Set window_min_height and window_min_width to 1 while restoring windows. diff -r 166ebab32ffa -r c64388cd7346 src/window.c --- a/src/window.c Tue Sep 20 01:28:35 1994 +0000 +++ b/src/window.c Tue Sep 20 02:20:05 1994 +0000 @@ -2697,6 +2697,9 @@ Lisp_Object minibuf_scroll_window; Lisp_Object root_window; Lisp_Object focus_frame; + /* Record the values of window-min-width and window-min-height + so that window sizes remain consistent with them. */ + Lisp_Object min_width, min_height; /* A vector, interpreted as a struct saved_window */ Lisp_Object saved_windows; }; @@ -2796,6 +2799,11 @@ windows_or_buffers_changed++; + /* Temporarily avoid any problems with windows that are smaller + than they are supposed to be. */ + window_min_height = 1; + window_min_width = 1; + /* Kludge Alert! Mark all windows now on frame as "deleted". Restoring the new configuration "undeletes" any that are in it. @@ -2936,6 +2944,10 @@ #endif } + /* Restore the minimum heights recorded in the configuration. */ + window_min_height = XINT (data->min_height); + window_min_width = XINT (data->min_width); + #ifdef MULTI_FRAME /* Fselect_window will have made f the selected frame, so we reselect the proper frame here. Fhandle_switch_frame will change the @@ -3105,6 +3117,8 @@ data->minibuf_scroll_window = Vminibuf_scroll_window; data->root_window = FRAME_ROOT_WINDOW (f); data->focus_frame = FRAME_FOCUS_FRAME (f); + XSET (data->min_height, Lisp_Int, window_min_height); + XSET (data->min_width, Lisp_Int, window_min_width); tem = Fmake_vector (make_number (n_windows), Qnil); data->saved_windows = tem; for (i = 0; i < n_windows; i++)