diff options
| author | Richard M. Stallman | 1994-08-13 23:13:10 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1994-08-13 23:13:10 +0000 |
| commit | 45945a7bc28eacb6d38ae5fd75203069d6bfd14f (patch) | |
| tree | 904fd3780e940587d4649d5be3f7927292d275bb /src | |
| parent | de517f67e3115f3629536f3c184799230c63833d (diff) | |
| download | emacs-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.c | 21 |
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 | { |