mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-28 10:56:36 +00:00
(read_minibuf_unwind): Don't restore minibuf_window;
instead call choose_minibuf_frame. (choose_minibuf_frame): Don't let any other frame keep its minibuf window selected.
This commit is contained in:
parent
f88a6649b8
commit
914860c262
@ -125,6 +125,17 @@ choose_minibuf_frame ()
|
||||
XWINDOW (minibuf_window)->buffer);
|
||||
minibuf_window = selected_frame->minibuffer_window;
|
||||
}
|
||||
|
||||
/* Make sure no other frame has a minibuffer as its selected window,
|
||||
because the text would not be displayed in it, and that would be
|
||||
confusing. */
|
||||
{
|
||||
Lisp_Object tail, frame;
|
||||
|
||||
FOR_EACH_FRAME (tail, frame)
|
||||
if (MINI_WINDOW_P (XWINDOW (FRAME_SELECTED_WINDOW (XFRAME (frame)))))
|
||||
Fset_frame_selected_window (frame, Fframe_first_window (frame));
|
||||
}
|
||||
}
|
||||
|
||||
DEFUN ("set-minibuffer-window", Fset_minibuffer_window,
|
||||
@ -489,7 +500,11 @@ read_minibuf_unwind (data)
|
||||
minibuf_save_list = Fcdr (minibuf_save_list);
|
||||
Voverriding_local_map = Fcar (minibuf_save_list);
|
||||
minibuf_save_list = Fcdr (minibuf_save_list);
|
||||
minibuf_window = Fcar (minibuf_save_list);
|
||||
#if 0
|
||||
temp = Fcar (minibuf_save_list);
|
||||
if (FRAME_LIVE_P (XFRAME (WINDOW_FRAME (XWINDOW (temp)))))
|
||||
minibuf_window = temp;
|
||||
#endif
|
||||
minibuf_save_list = Fcdr (minibuf_save_list);
|
||||
|
||||
/* Erase the minibuffer we were using at this level. */
|
||||
@ -503,6 +518,10 @@ read_minibuf_unwind (data)
|
||||
unbind_to (count, Qnil);
|
||||
}
|
||||
|
||||
/* Make the minibuffer follow the selected frame
|
||||
(in case we are exiting a recursive minibuffer). */
|
||||
choose_minibuf_frame ();
|
||||
|
||||
/* Make sure minibuffer window is erased, not ignored. */
|
||||
windows_or_buffers_changed++;
|
||||
XSETFASTINT (XWINDOW (window)->last_modified, 0);
|
||||
|
Loading…
Reference in New Issue
Block a user