comparison src/minibuf.c @ 16475:2602c284eb11

(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.
author Richard M. Stallman <rms@gnu.org>
date Sat, 26 Oct 1996 18:16:50 +0000
parents 85a90affc238
children 83d580ba04cf
comparison
equal deleted inserted replaced
16474:1b3c7561d286 16475:2602c284eb11
123 123
124 Fset_window_buffer (selected_frame->minibuffer_window, 124 Fset_window_buffer (selected_frame->minibuffer_window,
125 XWINDOW (minibuf_window)->buffer); 125 XWINDOW (minibuf_window)->buffer);
126 minibuf_window = selected_frame->minibuffer_window; 126 minibuf_window = selected_frame->minibuffer_window;
127 } 127 }
128
129 /* Make sure no other frame has a minibuffer as its selected window,
130 because the text would not be displayed in it, and that would be
131 confusing. */
132 {
133 Lisp_Object tail, frame;
134
135 FOR_EACH_FRAME (tail, frame)
136 if (MINI_WINDOW_P (XWINDOW (FRAME_SELECTED_WINDOW (XFRAME (frame)))))
137 Fset_frame_selected_window (frame, Fframe_first_window (frame));
138 }
128 } 139 }
129 140
130 DEFUN ("set-minibuffer-window", Fset_minibuffer_window, 141 DEFUN ("set-minibuffer-window", Fset_minibuffer_window,
131 Sset_minibuffer_window, 1, 1, 0, 142 Sset_minibuffer_window, 1, 1, 0,
132 "Specify which minibuffer window to use for the minibuffer.\n\ 143 "Specify which minibuffer window to use for the minibuffer.\n\
487 minibuf_save_list = Fcdr (minibuf_save_list); 498 minibuf_save_list = Fcdr (minibuf_save_list);
488 Vminibuffer_history_variable = Fcar (minibuf_save_list); 499 Vminibuffer_history_variable = Fcar (minibuf_save_list);
489 minibuf_save_list = Fcdr (minibuf_save_list); 500 minibuf_save_list = Fcdr (minibuf_save_list);
490 Voverriding_local_map = Fcar (minibuf_save_list); 501 Voverriding_local_map = Fcar (minibuf_save_list);
491 minibuf_save_list = Fcdr (minibuf_save_list); 502 minibuf_save_list = Fcdr (minibuf_save_list);
492 minibuf_window = Fcar (minibuf_save_list); 503 #if 0
504 temp = Fcar (minibuf_save_list);
505 if (FRAME_LIVE_P (XFRAME (WINDOW_FRAME (XWINDOW (temp)))))
506 minibuf_window = temp;
507 #endif
493 minibuf_save_list = Fcdr (minibuf_save_list); 508 minibuf_save_list = Fcdr (minibuf_save_list);
494 509
495 /* Erase the minibuffer we were using at this level. */ 510 /* Erase the minibuffer we were using at this level. */
496 { 511 {
497 int count = specpdl_ptr - specpdl; 512 int count = specpdl_ptr - specpdl;
500 old_deactivate_mark = Vdeactivate_mark; 515 old_deactivate_mark = Vdeactivate_mark;
501 Ferase_buffer (); 516 Ferase_buffer ();
502 Vdeactivate_mark = old_deactivate_mark; 517 Vdeactivate_mark = old_deactivate_mark;
503 unbind_to (count, Qnil); 518 unbind_to (count, Qnil);
504 } 519 }
520
521 /* Make the minibuffer follow the selected frame
522 (in case we are exiting a recursive minibuffer). */
523 choose_minibuf_frame ();
505 524
506 /* Make sure minibuffer window is erased, not ignored. */ 525 /* Make sure minibuffer window is erased, not ignored. */
507 windows_or_buffers_changed++; 526 windows_or_buffers_changed++;
508 XSETFASTINT (XWINDOW (window)->last_modified, 0); 527 XSETFASTINT (XWINDOW (window)->last_modified, 0);
509 XSETFASTINT (XWINDOW (window)->last_overlay_modified, 0); 528 XSETFASTINT (XWINDOW (window)->last_overlay_modified, 0);