diff options
| author | Richard M. Stallman <rms@gnu.org> | 2004-07-17 14:45:01 +0000 |
|---|---|---|
| committer | Richard M. Stallman <rms@gnu.org> | 2004-07-17 14:45:01 +0000 |
| commit | 8ceb7434dfcad287b590e4493f94db48bf88afd1 (patch) | |
| tree | 821718e88221a5a9ee097eb8445672b11e3fbf9c /src/frame.c | |
| parent | b3264fd2a8803c90ddb0a21b675b25f5d6ff72f4 (diff) | |
| download | emacs-8ceb7434dfcad287b590e4493f94db48bf88afd1.tar.gz | |
(Fdelete_frame): If we're in single_bboard_state on
this kboard, and we delete its last frame, go to any_kboard_state.
Diffstat (limited to 'src/frame.c')
| -rw-r--r-- | src/frame.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/frame.c b/src/frame.c index 934c11d98bc..691ff8c44d5 100644 --- a/src/frame.c +++ b/src/frame.c @@ -1327,6 +1327,36 @@ The functions are run with one arg, the frame to be deleted. */) } } + /* 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. */ |
