diff options
author | Alan Mackenzie <acm@muc.de> | 2023-06-21 14:23:14 +0000 |
---|---|---|
committer | Alan Mackenzie <acm@muc.de> | 2023-06-21 14:23:14 +0000 |
commit | 4ca371e9cc7178572cc25cbe47371c0075405ff7 (patch) | |
tree | fcb790b0431b6a47739fc2644298676c28076306 /src/minibuf.c | |
parent | a0ccf1859cc636998403c52cb25d5aaf43744d47 (diff) | |
download | emacs-4ca371e9cc7178572cc25cbe47371c0075405ff7.tar.gz emacs-4ca371e9cc7178572cc25cbe47371c0075405ff7.tar.bz2 emacs-4ca371e9cc7178572cc25cbe47371c0075405ff7.zip |
Fix bug#64152 (Minibuffer sometimes goes "modal")
In particular, when a frame has no minibuffer and is using that
of a different "normal" frame, C-x 5 o, etc., and GUI
operations fail.
Fix by partially reverting the commit from 2022-07-07 15:38:09
+0000 "Remove obscure, obsolete code from do_switch_frame". As
a consequent change, also revert the commit from 2022-07-08
20:19:03 +0000 "Remove now unused parameter TRACK from
do_switch_frame".
* src/frame.c (do_switch_frame): Restore the TRACK parameter.
Restore the code which redirects the frame focus when a new
frame gets selected.
* src/frame.c (Fselect_frame, Fhandle_switch_frame)
(delete_frame)
* src/keyboard.c (quit_throw_to_read_char)
* src/lisp.h (do_switch_frame prototype)
* src/minibuf.c (read_minibuf_unwind)
* src/window.c (Fset_window_configuration): Restore the TRACK
argument to do_switch_frame.
* src/xterm.c (x_try_restore_frame): Add a zero TRACK argument
to do_switch_frame.
Diffstat (limited to 'src/minibuf.c')
-rw-r--r-- | src/minibuf.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/minibuf.c b/src/minibuf.c index bcb7eb9375d..6e54d8c3ba5 100644 --- a/src/minibuf.c +++ b/src/minibuf.c @@ -1125,8 +1125,8 @@ read_minibuf_unwind (void) found: if (!EQ (exp_MB_frame, saved_selected_frame) && !NILP (exp_MB_frame)) - do_switch_frame (exp_MB_frame, 0, Qt); /* This also sets - minibuf_window */ + do_switch_frame (exp_MB_frame, 0, 0, Qt); /* This also sets + minibuf_window */ /* To keep things predictable, in case it matters, let's be in the minibuffer when we reset the relevant variables. Don't depend on @@ -1238,7 +1238,7 @@ read_minibuf_unwind (void) /* Restore the selected frame. */ if (!EQ (exp_MB_frame, saved_selected_frame) && !NILP (exp_MB_frame)) - do_switch_frame (saved_selected_frame, 0, Qt); + do_switch_frame (saved_selected_frame, 0, 0, Qt); } /* Replace the expired minibuffer in frame exp_MB_frame with the next less |