=== modified file 'src/frame.c' *** src/frame.c 2012-01-19 07:21:25 +0000 --- src/frame.c 2012-02-22 07:35:19 +0000 *************** *** 935,992 **** forever. Forestall that. */ CHECK_LIVE_FRAME (frame); ! while (1) for (tail = Vframe_list; CONSP (tail); tail = XCDR (tail)) { Lisp_Object f; f = XCAR (tail); ! if (passed ! && ((!FRAME_TERMCAP_P (XFRAME (f)) && !FRAME_TERMCAP_P (XFRAME (frame)) ! && FRAME_KBOARD (XFRAME (f)) == FRAME_KBOARD (XFRAME (frame))) ! || (FRAME_TERMCAP_P (XFRAME (f)) && FRAME_TERMCAP_P (XFRAME (frame)) ! && FRAME_TTY (XFRAME (f)) == FRAME_TTY (XFRAME (frame))))) { - /* Decide whether this frame is eligible to be returned. */ - /* If we've looped all the way around without finding any eligible frames, return the original frame. */ if (EQ (f, frame)) return f; ! ! /* Let minibuf decide if this frame is acceptable. */ ! if (NILP (minibuf)) ! { ! if (! FRAME_MINIBUF_ONLY_P (XFRAME (f))) ! return f; ! } ! else if (EQ (minibuf, Qvisible)) ! { ! FRAME_SAMPLE_VISIBILITY (XFRAME (f)); ! if (FRAME_VISIBLE_P (XFRAME (f))) ! return f; ! } ! else if (INTEGERP (minibuf) && XINT (minibuf) == 0) ! { ! FRAME_SAMPLE_VISIBILITY (XFRAME (f)); ! if (FRAME_VISIBLE_P (XFRAME (f)) ! || FRAME_ICONIFIED_P (XFRAME (f))) ! return f; ! } ! else if (WINDOWP (minibuf)) { ! if (EQ (FRAME_MINIBUF_WINDOW (XFRAME (f)), minibuf) ! || EQ (WINDOW_FRAME (XWINDOW (minibuf)), f) ! || EQ (WINDOW_FRAME (XWINDOW (minibuf)), ! FRAME_FOCUS_FRAME (XFRAME (f)))) ! return f; } - else - return f; } ! if (EQ (frame, f)) passed++; } } --- 935,997 ---- forever. Forestall that. */ CHECK_LIVE_FRAME (frame); ! while (Fmemq (frame, Vframe_list) && (passed < 100)) for (tail = Vframe_list; CONSP (tail); tail = XCDR (tail)) { Lisp_Object f; f = XCAR (tail); ! if (passed) { /* If we've looped all the way around without finding any eligible frames, return the original frame. */ if (EQ (f, frame)) return f; ! else { ! passed++; ! ! /* Decide whether this frame is eligible to be returned. */ ! if ((!FRAME_TERMCAP_P (XFRAME (f)) && !FRAME_TERMCAP_P (XFRAME (frame)) ! && FRAME_KBOARD (XFRAME (f)) == FRAME_KBOARD (XFRAME (frame))) ! || (FRAME_TERMCAP_P (XFRAME (f)) && FRAME_TERMCAP_P (XFRAME (frame)) ! && FRAME_TTY (XFRAME (f)) == FRAME_TTY (XFRAME (frame)))) ! { ! /* Let minibuf decide if this frame is acceptable. */ ! if (NILP (minibuf)) ! { ! if (! FRAME_MINIBUF_ONLY_P (XFRAME (f))) ! return f; ! } ! else if (EQ (minibuf, Qvisible)) ! { ! FRAME_SAMPLE_VISIBILITY (XFRAME (f)); ! if (FRAME_VISIBLE_P (XFRAME (f))) ! return f; ! } ! else if (INTEGERP (minibuf) && XINT (minibuf) == 0) ! { ! FRAME_SAMPLE_VISIBILITY (XFRAME (f)); ! if (FRAME_VISIBLE_P (XFRAME (f)) ! || FRAME_ICONIFIED_P (XFRAME (f))) ! return f; ! } ! else if (WINDOWP (minibuf)) ! { ! if (EQ (FRAME_MINIBUF_WINDOW (XFRAME (f)), minibuf) ! || EQ (WINDOW_FRAME (XWINDOW (minibuf)), f) ! || EQ (WINDOW_FRAME (XWINDOW (minibuf)), ! FRAME_FOCUS_FRAME (XFRAME (f)))) ! return f; ! } ! else ! return f; ! } } } ! else if (EQ (frame, f)) passed++; } }