diff src/frame.c @ 89956:b9eee0a7bef5

Revision: miles@gnu.org--gnu-2004/emacs--unicode--0--patch-25 Merge from emacs--cvs-trunk--0 Patches applied: * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-459 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-463 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-464 Update from CVS: lisp/progmodes/make-mode.el: Fix comments. * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-465 Update from CVS
author Miles Bader <miles@gnu.org>
date Fri, 23 Jul 2004 04:30:44 +0000
parents 68c22ea6027c b8b142a8e2c6
children c08afac24467
line wrap: on
line diff
--- a/src/frame.c	Sat Jul 17 05:09:07 2004 +0000
+++ b/src/frame.c	Fri Jul 23 04:30:44 2004 +0000
@@ -1327,6 +1327,36 @@
 	}
     }
 
+  /* If there's no other frame on the same kboard, get out of
+     single-kboard state if we're in it for this kboard.  */
+  {
+    Lisp_Object frames;
+    /* 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;
+
+    for (frames = Vframe_list;
+	 CONSP (frames);
+	 frames = XCDR (frames))
+      {
+	Lisp_Object this;
+	struct frame *f1;
+
+	this = XCAR (frames);
+	if (!FRAMEP (this))
+	  abort ();
+	f1 = XFRAME (this);
+
+	if (FRAME_KBOARD (f) == FRAME_KBOARD (f1))
+	  frame_on_same_kboard = this;
+      }
+
+    if (NILP (frame_on_same_kboard))
+      not_single_kboard_state (FRAME_KBOARD (f));
+  }
+
+
   /* If we've deleted this keyboard's default_minibuffer_frame, try to
      find another one.  Prefer minibuffer-only frames, but also notice
      frames with other windows.  */