diff options
| author | Karl Heuer | 1995-05-24 21:34:23 +0000 |
|---|---|---|
| committer | Karl Heuer | 1995-05-24 21:34:23 +0000 |
| commit | c4c6d073e610be2945218fc6f6fc6b0aee793784 (patch) | |
| tree | 6e0f3765c8e0a6fc23b3aa86b87227ad99d9681c /src | |
| parent | 0b60f47d26cb643b62389a8ec482237a72ebdb6a (diff) | |
| download | emacs-c4c6d073e610be2945218fc6f6fc6b0aee793784.tar.gz emacs-c4c6d073e610be2945218fc6f6fc6b0aee793784.zip | |
(Fdelete_frame): When updating Vdefault_minibuffer_frame,
insist on a frame on the proper keyboard.
Diffstat (limited to 'src')
| -rw-r--r-- | src/frame.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/frame.c b/src/frame.c index abad2114b2d..e6392da3d10 100644 --- a/src/frame.c +++ b/src/frame.c | |||
| @@ -1014,9 +1014,9 @@ but if the second optional argument FORCE is non-nil, you may do so.") | |||
| 1014 | } | 1014 | } |
| 1015 | } | 1015 | } |
| 1016 | 1016 | ||
| 1017 | /* If we've deleted Vdefault_minibuffer_frame, try to find another | 1017 | /* If we've deleted this keyboard's default_minibuffer_frame, try to |
| 1018 | one. Prefer minibuffer-only frames, but also notice frames | 1018 | find another one. Prefer minibuffer-only frames, but also notice |
| 1019 | with other windows. */ | 1019 | frames with other windows. */ |
| 1020 | if (EQ (frame, FRAME_KBOARD (f)->Vdefault_minibuffer_frame)) | 1020 | if (EQ (frame, FRAME_KBOARD (f)->Vdefault_minibuffer_frame)) |
| 1021 | { | 1021 | { |
| 1022 | Lisp_Object frames; | 1022 | Lisp_Object frames; |
| @@ -1030,16 +1030,20 @@ but if the second optional argument FORCE is non-nil, you may do so.") | |||
| 1030 | frames = XCONS (frames)->cdr) | 1030 | frames = XCONS (frames)->cdr) |
| 1031 | { | 1031 | { |
| 1032 | Lisp_Object this; | 1032 | Lisp_Object this; |
| 1033 | struct frame *f1; | ||
| 1033 | 1034 | ||
| 1034 | this = XCONS (frames)->car; | 1035 | this = XCONS (frames)->car; |
| 1035 | if (!FRAMEP (this)) | 1036 | if (!FRAMEP (this)) |
| 1036 | abort (); | 1037 | abort (); |
| 1037 | f = XFRAME (this); | 1038 | f1 = XFRAME (this); |
| 1038 | 1039 | ||
| 1039 | if (FRAME_HAS_MINIBUF_P (f)) | 1040 | /* Consider only frames on the same kboard |
| 1041 | and only those with minibuffers. */ | ||
| 1042 | if (FRAME_KBOARD (f) == FRAME_KBOARD (f1) | ||
| 1043 | && FRAME_HAS_MINIBUF_P (f1)) | ||
| 1040 | { | 1044 | { |
| 1041 | frame_with_minibuf = this; | 1045 | frame_with_minibuf = this; |
| 1042 | if (FRAME_MINIBUF_ONLY_P (f)) | 1046 | if (FRAME_MINIBUF_ONLY_P (f1)) |
| 1043 | break; | 1047 | break; |
| 1044 | } | 1048 | } |
| 1045 | } | 1049 | } |