summaryrefslogtreecommitdiff
path: root/doc/emacs/mini.texi
diff options
context:
space:
mode:
authorAlan Mackenzie <acm@muc.de>2020-11-05 19:27:43 +0000
committerAlan Mackenzie <acm@muc.de>2020-11-05 19:27:43 +0000
commit2ecbf4cfae7bd504fbdca28e1e51ee2574fe5d12 (patch)
treedb4eee9a921e881edad01513dd57701633479d93 /doc/emacs/mini.texi
parentbfd31242025cde90c8252db92dc54d0be4115c91 (diff)
downloademacs-2ecbf4cfae7bd504fbdca28e1e51ee2574fe5d12.tar.gz
emacs-2ecbf4cfae7bd504fbdca28e1e51ee2574fe5d12.tar.bz2
emacs-2ecbf4cfae7bd504fbdca28e1e51ee2574fe5d12.zip
Allow minibuffer to stay in its original frame. Tidy up this area.
* doc/emacs/mini.texi (Basic Minibuffer): Add an entry for minibuffer-follows-selected-frame. * doc/lispref/minibuf.texi (Minibuffer Misc): Describe the new parameter to minibufferp, LIVE. * etc/NEWS: Add an entry describing the new minibuffer strategy. * lisp/cus-start.el (minibuffer-prompt-properties--setter): Add an entry for minibuffer-follows-selected-frame. * lisp/minibuffer.el (minibuffer-message): Check for the current buffer being an _active_ minibuffer rather than merely a minibuffer. * src/frame.c (do_switch_frame): Call move_minibuffer_onto_frame. * src/lisp.h (Top level): Add prototypes for move_minibuffer_onto_frame and is_minibuffer. * src/minibuf.c (minibuf_follows_frame): New function which ignores local and let-bound values of minibuffer-follows-selected-frame. (choose_minibuf_frame): Reformulate this function to reuse a minibuffer window where possible, and to ensure no other frame has its minibuffer current, but only when `minibuffer-follows-selected-frame'. (move_minibuffer_onto_frame): New function. (live_minibuffer_p): New function. (Fminibufferp): Add a new &optional parameter LIVE. Reformulate, possibly calling live_minibuffer_p. (read_minibuf): move the incrementation of minibuf_level to before the call of choose_minibuf_frame. Empty the miniwindows of frames without an active minibuffer, rather than of all but the current frame. (is_minibuffer): New function. (read_minibuf_unwind): Note the miniwindow being restored and resize all other miniwindows to zero size. (minibuffer-follows-selected-frame): New configuration variable. * src/window.c (candidate_window_p): In some scenarios, check the miniwindow holds an active minibuffer. * src/xdisp.c (get_window_cursor_type): Suppress the cursor for non-active miniwindows, regardless of minibuf_level.
Diffstat (limited to 'doc/emacs/mini.texi')
-rw-r--r--doc/emacs/mini.texi11
1 files changed, 11 insertions, 0 deletions
diff --git a/doc/emacs/mini.texi b/doc/emacs/mini.texi
index 54f046a7e05..ede95a28d4e 100644
--- a/doc/emacs/mini.texi
+++ b/doc/emacs/mini.texi
@@ -69,6 +69,17 @@ the minibuffer for a few seconds, or until you type something; then
the minibuffer comes back. While the minibuffer is in use, Emacs does
not echo keystrokes.
+@vindex minibuffer-follows-selected-frame
+ While using the minibuffer, you can switch to a different frame,
+perhaps to note text you need to enter (@pxref{Frame Commands}). By
+default, the active minibuffer moves to this new frame. If you set
+the user option @code{minibuffer-follows-selected-frame} to
+@code{nil}, then the minibuffer stays in the frame where you opened
+it, and you must switch back to that frame in order to complete (or
+abort) the current command. Note that the effect of the command, when
+you finally finish using the minibuffer, always takes place in the
+frame where you first opened it.
+
@node Minibuffer File
@section Minibuffers for File Names