diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 4 | ||||
| -rw-r--r-- | src/minibuf.c | 19 |
2 files changed, 23 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 398fe286de9..e550604498d 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2005-12-31 Richard M. Stallman <rms@gnu.org> | ||
| 2 | |||
| 3 | * minibuf.c (read_minibuf): Clear out all other minibuffer windows. | ||
| 4 | |||
| 1 | 2005-12-31 Eli Zaretskii <eliz@gnu.org> | 5 | 2005-12-31 Eli Zaretskii <eliz@gnu.org> |
| 2 | 6 | ||
| 3 | * emacs.c (gdb_pvec_type): A dummy variable for GDB's sake. | 7 | * emacs.c (gdb_pvec_type): A dummy variable for GDB's sake. |
diff --git a/src/minibuf.c b/src/minibuf.c index df9f5dcc336..a0accf6ed50 100644 --- a/src/minibuf.c +++ b/src/minibuf.c | |||
| @@ -463,6 +463,9 @@ read_minibuf (map, initial, prompt, backup_n, expflag, | |||
| 463 | /* String to add to the history. */ | 463 | /* String to add to the history. */ |
| 464 | Lisp_Object histstring; | 464 | Lisp_Object histstring; |
| 465 | 465 | ||
| 466 | Lisp_Object empty_minibuf; | ||
| 467 | Lisp_Object dummy, frame; | ||
| 468 | |||
| 466 | extern Lisp_Object Qfront_sticky; | 469 | extern Lisp_Object Qfront_sticky; |
| 467 | extern Lisp_Object Qrear_nonsticky; | 470 | extern Lisp_Object Qrear_nonsticky; |
| 468 | 471 | ||
| @@ -639,6 +642,22 @@ read_minibuf (map, initial, prompt, backup_n, expflag, | |||
| 639 | Vminibuf_scroll_window = selected_window; | 642 | Vminibuf_scroll_window = selected_window; |
| 640 | if (minibuf_level == 1 || !EQ (minibuf_window, selected_window)) | 643 | if (minibuf_level == 1 || !EQ (minibuf_window, selected_window)) |
| 641 | minibuf_selected_window = selected_window; | 644 | minibuf_selected_window = selected_window; |
| 645 | |||
| 646 | /* Empty out the minibuffers of all frames other than the one | ||
| 647 | where we are going to display one now. | ||
| 648 | Set them to point to ` *Minibuf-0*', which is always empty. */ | ||
| 649 | empty_minibuf = Fget_buffer (build_string (" *Minibuf-0*")); | ||
| 650 | |||
| 651 | FOR_EACH_FRAME (dummy, frame) | ||
| 652 | { | ||
| 653 | Lisp_Object root_window = Fframe_root_window (frame); | ||
| 654 | Lisp_Object mini_window = XWINDOW (root_window)->next; | ||
| 655 | |||
| 656 | if (! NILP (mini_window) && !NILP (Fwindow_minibuffer_p (mini_window))) | ||
| 657 | Fset_window_buffer (mini_window, empty_minibuf, Qnil); | ||
| 658 | } | ||
| 659 | |||
| 660 | /* Display this minibuffer in the proper window. */ | ||
| 642 | Fset_window_buffer (minibuf_window, Fcurrent_buffer (), Qnil); | 661 | Fset_window_buffer (minibuf_window, Fcurrent_buffer (), Qnil); |
| 643 | Fselect_window (minibuf_window, Qnil); | 662 | Fselect_window (minibuf_window, Qnil); |
| 644 | XSETFASTINT (XWINDOW (minibuf_window)->hscroll, 0); | 663 | XSETFASTINT (XWINDOW (minibuf_window)->hscroll, 0); |