changeset 1979:6a91a3c8f1dc

[xemacs-hg @ 2004-04-03 20:49:25 by adrian] [PATCH] dedicated window deletion patch <82ad1yyjvs.fsf@us.dmz.local>
author adrian
date Sat, 03 Apr 2004 20:49:26 +0000
parents f32f3ddaf534
children dc7c0fbed006
files src/ChangeLog src/window.c
diffstat 2 files changed, 13 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Sat Apr 03 20:00:26 2004 +0000
+++ b/src/ChangeLog	Sat Apr 03 20:49:26 2004 +0000
@@ -1,3 +1,10 @@
+2004-03-30  Zajcev Evgeny  <zevlg@yandex.ru>
+
+	* window.c: Declare `allow_deletion_of_last_visible_frame' extern.
+	* window.c (window_loop): [fix] Take into account
+	`allow-deletion-of-last-visible-frame' variable.
+	* window.c (replace-buffer-in-windows): Ditto.
+
 2004-03-22  Stephen J. Turnbull  <stephen@xemacs.org>
 
 	* XEmacs 21.5.17 "chayote" is released.
--- a/src/window.c	Sat Apr 03 20:00:26 2004 +0000
+++ b/src/window.c	Sat Apr 03 20:49:26 2004 +0000
@@ -61,6 +61,8 @@
 #endif
 #endif
 
+extern int allow_deletion_of_last_visible_frame;
+
 EXFUN (Fnext_window, 4);
 
 static int window_pixel_width_to_char_width (struct window *w,
@@ -2919,7 +2921,8 @@
 			 of its own, kill the frame.  */
 		      if (EQ (w, FRAME_ROOT_WINDOW (f))
 			  && !NILP (p->dedicated)
-			  && other_visible_frames (f))
+			  && (allow_deletion_of_last_visible_frame
+			      || other_visible_frames (f)))
 			{
 			  /* Skip the other windows on this frame.
 			     There might be one, the minibuffer!  */
@@ -3371,7 +3374,8 @@
 	  if (!NILP (XWINDOW (window)->dedicated)
 	      && EQ (window,
 		     FRAME_ROOT_WINDOW (XFRAME (frame)))
-	      && other_visible_frames (XFRAME (frame)))
+	      && (allow_deletion_of_last_visible_frame
+		  || other_visible_frames (XFRAME (frame))))
 	    {
 	      delete_frame_internal (XFRAME (frame), 0, 0, 0); /* GC */
 	    }