Mercurial > emacs
changeset 12380:2c09b3adbb90
(Fdelete_frame): It's ok to have no minibuffer left on
a kboard if there are no frames on it either.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Mon, 26 Jun 1995 03:49:20 +0000 |
parents | 7149fc03ea56 |
children | 67cb86bbdb55 |
files | src/frame.c |
diffstat | 1 files changed, 22 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/src/frame.c Sun Jun 25 19:05:32 1995 +0000 +++ b/src/frame.c Mon Jun 26 03:49:20 1995 +0000 @@ -1069,8 +1069,12 @@ /* The last frame we saw with a minibuffer, minibuffer-only or not. */ Lisp_Object frame_with_minibuf; + /* Some frame we found on the same kboard, or nil if there are none. */ + Lisp_Object frame_on_same_kboard; + frame_on_same_kboard = Qnil; frame_with_minibuf = Qnil; + for (frames = Vframe_list; CONSP (frames); frames = XCONS (frames)->cdr) @@ -1092,18 +1096,27 @@ if (FRAME_MINIBUF_ONLY_P (f1)) break; } + + if (FRAME_KBOARD (f) == FRAME_KBOARD (f1)) + frame_on_same_kboard = this; } - /* We know that there must be some frame with a minibuffer out - there. If this were not true, all of the frames present - would have to be minibufferless, which implies that at some - point their minibuffer frames must have been deleted, but - that is prohibited at the top; you can't delete surrogate - minibuffer frames. */ - if (NILP (frame_with_minibuf)) - abort (); + if (!NILP (frame_on_same_kboard)) + { + /* We know that there must be some frame with a minibuffer out + there. If this were not true, all of the frames present + would have to be minibufferless, which implies that at some + point their minibuffer frames must have been deleted, but + that is prohibited at the top; you can't delete surrogate + minibuffer frames. */ + if (NILP (frame_with_minibuf)) + abort (); - FRAME_KBOARD (f)->Vdefault_minibuffer_frame = frame_with_minibuf; + FRAME_KBOARD (f)->Vdefault_minibuffer_frame = frame_with_minibuf; + } + else + /* No frames left on this kboard--say no minibuffer either. */ + FRAME_KBOARD (f)->Vdefault_minibuffer_frame = Qnil; } return Qnil;