aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard M. Stallman1994-08-13 23:13:10 +0000
committerRichard M. Stallman1994-08-13 23:13:10 +0000
commit45945a7bc28eacb6d38ae5fd75203069d6bfd14f (patch)
tree904fd3780e940587d4649d5be3f7927292d275bb /src
parentde517f67e3115f3629536f3c184799230c63833d (diff)
downloademacs-45945a7bc28eacb6d38ae5fd75203069d6bfd14f.tar.gz
emacs-45945a7bc28eacb6d38ae5fd75203069d6bfd14f.zip
(window_loop, case UNSHOW_BUFFER):
When we delete a frame, skip all the windows on that frame.
Diffstat (limited to 'src')
-rw-r--r--src/window.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/window.c b/src/window.c
index 22db914d7f6..cf5aa8db7cd 100644
--- a/src/window.c
+++ b/src/window.c
@@ -1337,7 +1337,26 @@ window_loop (type, obj, mini, frames)
1337 if (EQ (w, FRAME_ROOT_WINDOW (f)) 1337 if (EQ (w, FRAME_ROOT_WINDOW (f))
1338 && !NILP (XWINDOW (w)->dedicated) 1338 && !NILP (XWINDOW (w)->dedicated)
1339 && other_visible_frames (f)) 1339 && other_visible_frames (f))
1340 Fdelete_frame (WINDOW_FRAME (XWINDOW (w)), Qnil); 1340 {
1341 /* Skip the other windows on this frame.
1342 There might be one, the minibuffer! */
1343 if (! EQ (w, last_window))
1344 while (f == XFRAME (WINDOW_FRAME (XWINDOW (next_window))))
1345 {
1346 /* As we go, check for the end of the loop.
1347 We mustn't start going around a second time. */
1348 if (EQ (next_window, last_window))
1349 {
1350 last_window = w;
1351 break;
1352 }
1353 next_window = Fnext_window (next_window,
1354 mini ? Qt : Qnil,
1355 frame_arg);
1356 }
1357 /* Now we can safely delete the frame. */
1358 Fdelete_frame (WINDOW_FRAME (XWINDOW (w)), Qnil);
1359 }
1341 else 1360 else
1342#endif 1361#endif
1343 { 1362 {