}
static Lisp_Object
-set_window_from_sexp (data, prev, parent, new_current_window)
- Lisp_Object data, prev, parent, *new_current_window;
+set_window_from_sexp (data, prev, parent, new_current_window, new_mini_window)
+ Lisp_Object data, prev, parent;
+ Lisp_Object *new_current_window, *new_mini_window;
{
register Lisp_Object tem;
register Lisp_Object window;
tem = Fcdr (Fassq (intern ("next"), data));
if (!NILP (tem))
- w->next = set_window_from_sexp (tem, window, Qnil, new_current_window);
+ w->next = set_window_from_sexp (tem, window, Qnil,
+ new_current_window,
+ new_mini_window);
tem = Fcdr (Fassq (intern ("hchild"), data));
if (!NILP (tem))
- w->hchild = set_window_from_sexp (tem, Qnil, window, new_current_window);
+ w->hchild = set_window_from_sexp (tem, Qnil, window,
+ new_current_window,
+ new_mini_window);
tem = Fcdr (Fassq (intern ("vchild"), data));
if (!NILP (tem))
- w->vchild = set_window_from_sexp (tem, Qnil, window, new_current_window);
+ w->vchild = set_window_from_sexp (tem, Qnil, window,
+ new_current_window,
+ new_mini_window);
tem = Fassq (intern ("left-col"), data);
if (!NILP (tem))
tem = Fassq (intern ("resize-proportionally"), data);
if (!NILP (tem))
w->resize_proportionally = Fcdr (tem);
+ tem = Fassq (intern ("mini-p"), data);
+ if (!NILP (tem)) {
+ w->mini_p = Fcdr (tem);
+ *new_mini_window = window;
+ }
XSETFASTINT (w->last_modified, 0);
XSETFASTINT (w->last_overlay_modified, 0);
register Lisp_Object tem, tem2;
Lisp_Object saved_windows;
Lisp_Object new_current_buffer;
- Lisp_Object new_current_window;
+ Lisp_Object new_current_window, new_mini_window;
Lisp_Object frame;
FRAME_PTR f;
saved_windows = Fcdr (Fassq (intern ("saved-windows"), data));
new_current_buffer = Fcdr (Fassq (intern ("current-buffer"), data));
- new_current_window = Qnil;
+ new_current_window = new_mini_window = Qnil;
frame = selected_frame;
CHECK_LIVE_FRAME (frame);
delete_all_subwindows (XWINDOW (FRAME_ROOT_WINDOW (f)));
FRAME_ROOT_WINDOW (f) = set_window_from_sexp (saved_windows, Qnil, Qnil,
- &new_current_window);
+ &new_current_window,
+ &new_mini_window);
+
+ if (!NILP (new_mini_window))
+ f->minibuffer_window = new_mini_window;
+ else
+ f->minibuffer_window = Qnil;
if (!NILP (new_current_window))
{
w->dedicated), data);
data = Fcons (Fcons (intern ("resize-proportionally"),
w->resize_proportionally), data);
+ if (!NILP (w->mini_p))
+ data = Fcons (Fcons (intern ("mini-p"),
+ w->mini_p), data);
if (!NILP (w->buffer))
{