diff options
| author | Richard M. Stallman | 1995-07-21 07:50:50 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1995-07-21 07:50:50 +0000 |
| commit | c5b6b68020dbea06f1b167553e4145319689492d (patch) | |
| tree | a6c9fde76e7a497df70ba8ab3ebb8d55f4ae9c42 /src | |
| parent | 2bb07400c9d0f4c796f8e213c733debe8cafe7aa (diff) | |
| download | emacs-c5b6b68020dbea06f1b167553e4145319689492d.tar.gz emacs-c5b6b68020dbea06f1b167553e4145319689492d.zip | |
(read_minibuf): Call choose_minibuffer_frame.
First save the previous minibuf_window.
(read_minibuf_unwind): Restore old minibuf_window.
Diffstat (limited to 'src')
| -rw-r--r-- | src/minibuf.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/minibuf.c b/src/minibuf.c index 91e622a617c..afd27c76a35 100644 --- a/src/minibuf.c +++ b/src/minibuf.c | |||
| @@ -148,26 +148,28 @@ read_minibuf (map, initial, prompt, backup_n, expflag, histvar, histpos) | |||
| 148 | if (!enable_recursive_minibuffers | 148 | if (!enable_recursive_minibuffers |
| 149 | && minibuf_level > 0 | 149 | && minibuf_level > 0 |
| 150 | && (EQ (selected_window, minibuf_window))) | 150 | && (EQ (selected_window, minibuf_window))) |
| 151 | #if 0 | ||
| 152 | || selected_frame != XFRAME (WINDOW_FRAME (XWINDOW (minibuf_window))) | ||
| 153 | #endif | ||
| 154 | error ("Command attempted to use minibuffer while in minibuffer"); | 151 | error ("Command attempted to use minibuffer while in minibuffer"); |
| 155 | 152 | ||
| 156 | /* Could we simply bind these variables instead? */ | 153 | /* Could we simply bind these variables instead? */ |
| 157 | minibuf_save_list | 154 | minibuf_save_list |
| 155 | = Fcons (Voverriding_local_map, | ||
| 156 | Fcons (minibuf_window, minibuf_save_list)); | ||
| 157 | minibuf_save_list | ||
| 158 | = Fcons (minibuf_prompt, | 158 | = Fcons (minibuf_prompt, |
| 159 | Fcons (make_number (minibuf_prompt_width), | 159 | Fcons (make_number (minibuf_prompt_width), |
| 160 | Fcons (Vhelp_form, | 160 | Fcons (Vhelp_form, |
| 161 | Fcons (Vcurrent_prefix_arg, | 161 | Fcons (Vcurrent_prefix_arg, |
| 162 | Fcons (Vminibuffer_history_position, | 162 | Fcons (Vminibuffer_history_position, |
| 163 | Fcons (Vminibuffer_history_variable, | 163 | Fcons (Vminibuffer_history_variable, |
| 164 | Fcons (Voverriding_local_map, | 164 | minibuf_save_list)))))); |
| 165 | minibuf_save_list))))))); | 165 | |
| 166 | minibuf_prompt_width = 0; /* xdisp.c puts in the right value. */ | 166 | minibuf_prompt_width = 0; /* xdisp.c puts in the right value. */ |
| 167 | minibuf_prompt = Fcopy_sequence (prompt); | 167 | minibuf_prompt = Fcopy_sequence (prompt); |
| 168 | Vminibuffer_history_position = histpos; | 168 | Vminibuffer_history_position = histpos; |
| 169 | Vminibuffer_history_variable = histvar; | 169 | Vminibuffer_history_variable = histvar; |
| 170 | 170 | ||
| 171 | choose_minibuf_frame (); | ||
| 172 | |||
| 171 | record_unwind_protect (Fset_window_configuration, | 173 | record_unwind_protect (Fset_window_configuration, |
| 172 | Fcurrent_window_configuration (Qnil)); | 174 | Fcurrent_window_configuration (Qnil)); |
| 173 | 175 | ||
| @@ -407,6 +409,8 @@ read_minibuf_unwind (data) | |||
| 407 | minibuf_save_list = Fcdr (minibuf_save_list); | 409 | minibuf_save_list = Fcdr (minibuf_save_list); |
| 408 | Voverriding_local_map = Fcar (minibuf_save_list); | 410 | Voverriding_local_map = Fcar (minibuf_save_list); |
| 409 | minibuf_save_list = Fcdr (minibuf_save_list); | 411 | minibuf_save_list = Fcdr (minibuf_save_list); |
| 412 | minibuf_window = Fcar (minibuf_save_list); | ||
| 413 | minibuf_save_list = Fcdr (minibuf_save_list); | ||
| 410 | } | 414 | } |
| 411 | 415 | ||
| 412 | 416 | ||