From 756b6edc1eb0fcb6e03a46b690d4e86f9f17a984 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Tue, 20 Sep 1994 02:20:05 +0000 Subject: (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. --- src/window.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/window.c b/src/window.c index cf5aa8db7c..ba78cb5dd9 100644 --- a/src/window.c +++ b/src/window.c @@ -2697,6 +2697,9 @@ struct save_window_data 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 @@ by `current-window-configuration' (which see).") 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 @@ by `current-window-configuration' (which see).") #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 @@ redirection (see `redirect-frame-focus').") 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++) -- cgit v1.2.3