Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
emacs
emacs
Commits
1bb80f72
Commit
1bb80f72
authored
Jul 24, 1994
by
Richard M. Stallman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(Fnext_window, Fprevious_window): Don't get stuck in a loop
in the minibuffer frame.
parent
13118fc3
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
32 additions
and
9 deletions
+32
-9
src/window.c
src/window.c
+32
-9
No files found.
src/window.c
View file @
1bb80f72
...
...
@@ -880,15 +880,14 @@ DEFUN ("next-window", Fnext_window, Snext_window, 0, 3, 0,
minibuf
=
(
minibuf_level
?
Qt
:
Qlambda
);
#ifdef MULTI_FRAME
/* all_frames == nil doesn't specify which frames to include.
Decide which frames it includes. */
/* all_frames == nil doesn't specify which frames to include. */
if
(
NILP
(
all_frames
))
all_frames
=
(
EQ
(
minibuf
,
Qt
)
?
(
FRAME_MINIBUF_WINDOW
(
XFRAME
(
WINDOW_FRAME
(
XWINDOW
(
window
)))))
:
Qnil
);
?
(
FRAME_MINIBUF_WINDOW
(
XFRAME
(
WINDOW_FRAME
(
XWINDOW
(
window
)))))
:
Qnil
);
else
if
(
EQ
(
all_frames
,
Qvisible
))
;
else
if
(
XFASTINT
(
all_frames
)
==
0
)
...
...
@@ -918,7 +917,19 @@ DEFUN ("next-window", Fnext_window, Snext_window, 0, 3, 0,
tem
=
WINDOW_FRAME
(
XWINDOW
(
window
));
#ifdef MULTI_FRAME
if
(
!
NILP
(
all_frames
))
tem
=
next_frame
(
tem
,
all_frames
);
{
Lisp_Object
tem1
;
tem1
=
tem
;
tem
=
next_frame
(
tem
,
all_frames
);
/* In the case where the minibuffer is active,
and we include its frame as well as the selected one,
next_frame may get stuck in that frame.
If that happens, go back to the selected frame
so we can complete the cycle. */
if
(
EQ
(
tem
,
tem1
))
XSET
(
tem
,
Lisp_Frame
,
selected_frame
);
}
#endif
tem
=
FRAME_ROOT_WINDOW
(
XFRAME
(
tem
));
...
...
@@ -1050,7 +1061,19 @@ DEFUN ("previous-window", Fprevious_window, Sprevious_window, 0, 3, 0,
paths through the set of acceptable windows.
window_loop assumes that these `ring' requirement are
met. */
tem
=
prev_frame
(
tem
,
all_frames
);
{
Lisp_Object
tem1
;
tem1
=
tem
;
tem
=
prev_frame
(
tem
,
all_frames
);
/* In the case where the minibuffer is active,
and we include its frame as well as the selected one,
next_frame may get stuck in that frame.
If that happens, go back to the selected frame
so we can complete the cycle. */
if
(
EQ
(
tem
,
tem1
))
XSET
(
tem
,
Lisp_Frame
,
selected_frame
);
}
#endif
/* If this frame has a minibuffer, find that window first,
because it is conceptually the last window in that frame. */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment