# HG changeset patch # User Richard M. Stallman # Date 804138560 0 # Node ID 2c09b3adbb909307316720571e3a854d59787572 # Parent 7149fc03ea56cf0b3caa1c232fc2351483369192 (Fdelete_frame): It's ok to have no minibuffer left on a kboard if there are no frames on it either. diff -r 7149fc03ea56 -r 2c09b3adbb90 src/frame.c --- 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;