Mercurial > emacs
changeset 29987:c38afaed3dd0
(next_frame): Don't check frame-focus redirection in
case MINIBUF is a window. Doing so excludes frames using MINIBUF
unless their focus is redirected, which contradicts the
specification of next-frame, and leads to infinite loops in
certain situations when cycling through windows with next-window.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Fri, 30 Jun 2000 19:20:25 +0000 |
parents | 195fbbbd4cba |
children | ae9578eb3d45 |
files | src/frame.c |
diffstat | 1 files changed, 10 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/frame.c Fri Jun 30 10:00:58 2000 +0000 +++ b/src/frame.c Fri Jun 30 19:20:25 2000 +0000 @@ -934,7 +934,7 @@ if (FRAME_VISIBLE_P (XFRAME (f))) return f; } - else if (XFASTINT (minibuf) == 0) + else if (INTEGERP (minibuf) && XINT (minibuf) == 0) { FRAME_SAMPLE_VISIBILITY (XFRAME (f)); if (FRAME_VISIBLE_P (XFRAME (f)) @@ -943,6 +943,10 @@ } else if (WINDOWP (minibuf)) { +#if 0 /* I don't think the test for frame focus redirection is + correct. This excludes frames "using the current minibuffer" + when their focus isn't redirected, which contradicts the doc + string of next-frame. --gerd, 2000-06-30 */ if (EQ (FRAME_MINIBUF_WINDOW (XFRAME (f)), minibuf) /* Check that F either is, or has forwarded its focus to, MINIBUF's frame. */ @@ -950,6 +954,11 @@ || EQ (WINDOW_FRAME (XWINDOW (minibuf)), FRAME_FOCUS_FRAME (XFRAME (f))))) return f; +#else /* not 0 */ + if (EQ (FRAME_MINIBUF_WINDOW (XFRAME (f)), minibuf) + || EQ (WINDOW_FRAME (XWINDOW (minibuf)), f)) + return f; +#endif /* not 0 */ } else return f;