* Re: C-x C-f in two frames -> "user minibuffer while in minibuffer": Bug?
[not found] <mailman.3850.1118237772.25862.help-gnu-emacs@gnu.org>
@ 2005-06-09 8:56 ` Tim X
0 siblings, 0 replies; 4+ messages in thread
From: Tim X @ 2005-06-09 8:56 UTC (permalink / raw)
David Reitter <david.reitter@gmail.com> writes:
> I don't know if this is a bug or not, so I'll post it here:
>
> If I open a second frame, then do C-x C-f in one of them and press
> tab so that the window is split and I get a *Completions* buffer in
> one frame, and when I then select the second frame and do a C-x C-f
> there, I don't get another *Completions* buffer there, but an error
> message that appears in the first frame:
>
> "Command attempted to use minibuffer while in minibuffer"
>
> This happens with standard settings, on the GNU/Linux port as well as
> on Carbon, no matter what display-buffer-reuse-frames is.
>
> Is that a bug?
>
I don't think you could call it a bug. Maybe a carbon based error! The
problem is that you are midway through a command and emacs is waiting
for data to be entered in the minibuffer. When you try to execute a
second C-x C-f, emacs tries to use the minibuffer again, but its
already in use by the previous find-file command.
I think the issue is that while emacs has multiple frames, there is
really only one minibuffer - each frame doesn't have its own
minibuffer. Essentially, you cannot use a command which requires the
minibuffer when your half way through executing a command which is
already using the minibuffer. You would probably be able to use any
command in the second frame which does not require the minibuffer
without problems.
regards,
Tim
--
Tim Cross
The e-mail address on this message is FALSE (obviously!). My real e-mail is
to a company in Australia called rapttech and my login is tcross - if you
really need to send mail, you should be able to work it out!
^ permalink raw reply [flat|nested] 4+ messages in thread
* C-x C-f in two frames -> "user minibuffer while in minibuffer": Bug?
@ 2005-06-08 13:18 David Reitter
2005-06-08 14:08 ` Peter Dyballa
2005-06-09 16:22 ` Drew Adams
0 siblings, 2 replies; 4+ messages in thread
From: David Reitter @ 2005-06-08 13:18 UTC (permalink / raw)
I don't know if this is a bug or not, so I'll post it here:
If I open a second frame, then do C-x C-f in one of them and press
tab so that the window is split and I get a *Completions* buffer in
one frame, and when I then select the second frame and do a C-x C-f
there, I don't get another *Completions* buffer there, but an error
message that appears in the first frame:
"Command attempted to use minibuffer while in minibuffer"
This happens with standard settings, on the GNU/Linux port as well as
on Carbon, no matter what display-buffer-reuse-frames is.
Is that a bug?
D
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: C-x C-f in two frames -> "user minibuffer while in minibuffer": Bug?
2005-06-08 13:18 David Reitter
@ 2005-06-08 14:08 ` Peter Dyballa
2005-06-09 16:22 ` Drew Adams
1 sibling, 0 replies; 4+ messages in thread
From: Peter Dyballa @ 2005-06-08 14:08 UTC (permalink / raw)
Cc: Help-gnu-emacs
Am 08.06.2005 um 15:18 schrieb David Reitter:
> If I open a second frame, then do C-x C-f in one of them and press tab
> so that the window is split and I get a *Completions* buffer in one
> frame, and when I then select the second frame and do a C-x C-f there,
> I don't get another *Completions* buffer there, but an error message
> that appears in the first frame:
>
> "Command attempted to use minibuffer while in minibuffer"
>
No, that's definitely no bug! There is in the first frame minibuffer
waiting for your input. And since there is only one such thing, yet,
you can't use it for something different somewhere else.
I think too it would be a nice enhancement if every frame would have
its own minibuffer. I remember that from time to time I had to use more
than one Emacs running to get things together for an input to
minibuffer (could have sorted this out in scratch buffer -- but then I
would have needed to remember how I made minibuffer awaiting my input
...)
--
Greetings
<]
Pete o __o |__ o recumbo
___o /I -\<, |o \ -\),-% ergo sum!
___/\ /\___./ \___...O/ O____.....`-O-'-()--o_________________
^ permalink raw reply [flat|nested] 4+ messages in thread
* RE: C-x C-f in two frames -> "user minibuffer while in minibuffer": Bug?
2005-06-08 13:18 David Reitter
2005-06-08 14:08 ` Peter Dyballa
@ 2005-06-09 16:22 ` Drew Adams
1 sibling, 0 replies; 4+ messages in thread
From: Drew Adams @ 2005-06-09 16:22 UTC (permalink / raw)
If I open a second frame, then do C-x C-f in one of them and press
tab so that the window is split and I get a *Completions* buffer in
one frame, and when I then select the second frame and do a C-x C-f
there, I don't get another *Completions* buffer there, but an error
message that appears in the first frame:
"Command attempted to use minibuffer while in minibuffer"
This happens with standard settings, on the GNU/Linux port as well as
on Carbon, no matter what display-buffer-reuse-frames is.
Is that a bug?
Others have explained what's happening wrt minibuffer input. Here's some
more info that might help:
The *Completions* buffer is a bit special, in that its input is directed to
the minibuffer. When it is in a separate frame, the frame focus needs to be
redirected to the minibuffer explicitly, I've found. I do this:
;; Use `my-display-*Completions*-frame' to display *Completions* buffer
(add-to-list
'special-display-buffer-names
(list "*Completions*" 'my-display-*Completions*-frame))
(defun my-display-*Completions*-frame (buf &optional args)
"Display *Completions* buffer in its own frame.
`special-display-function' is used to do the actual displaying.
Completion input events are redirected to `my-minibuffer-frame'."
(let (return-window)
(setq return-window
(select-window (funcall special-display-function buf args)))
(raise-frame)
(redirect-frame-focus (selected-frame) my-minibuffer-frame)
return-window))
The key line is the second-to-last: redirect-frame-focus.
The value of variable `my-minibuffer-frame' is a standalone minibuffer
(only) frame. (For the complete code, see
http://www.emacswiki.org/elisp/oneonone.el. See also
http://www.emacswiki.org/elisp/elect-mbuf.el for code that removes the
*Completions* frame when you are done with it.)
HTH,
Drew
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2005-06-09 16:22 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <mailman.3850.1118237772.25862.help-gnu-emacs@gnu.org>
2005-06-09 8:56 ` C-x C-f in two frames -> "user minibuffer while in minibuffer": Bug? Tim X
2005-06-08 13:18 David Reitter
2005-06-08 14:08 ` Peter Dyballa
2005-06-09 16:22 ` Drew Adams
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).