From 6442cdc0e4ec466841ff9c3d9016fecd7b72b5a1 Mon Sep 17 00:00:00 2001 From: Martin Rudalics Date: Wed, 25 Nov 2020 09:58:21 +0100 Subject: [PATCH] Revert extra focus redirection in do_switch_frame (Bug#24803) * src/frame.c (do_switch_frame): Do not also redirect frame focus when FRAME has its minibuffer window on the selected frame which was intended to fix Bug#24500. It may cause Bug#24803 and lead to a nasty state where no active cursor is shown on any frame, see https://lists.gnu.org/archive/html/emacs-devel/2020-11/msg01137.html. --- src/frame.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/frame.c b/src/frame.c index adcc489a406..16f6d6c4607 100644 --- a/src/frame.c +++ b/src/frame.c @@ -1427,11 +1427,15 @@ do_switch_frame (Lisp_Object frame, int track, int for_deletion, Lisp_Object nor if (FRAMEP (gfocus)) { focus = FRAME_FOCUS_FRAME (XFRAME (gfocus)); - if ((FRAMEP (focus) && XFRAME (focus) == SELECTED_FRAME ()) + if (FRAMEP (focus) && XFRAME (focus) == SELECTED_FRAME ()) /* Redirect frame focus also when FRAME has its minibuffer - window on the selected frame (see Bug#24500). */ + window on the selected frame (see Bug#24500). + + Don't do that: It causes redirection problem with a + separate minibuffer frame (Bug#24803) and problems + when updating the cursor on such frames. || (NILP (focus) - && EQ (FRAME_MINIBUF_WINDOW (f), sf->selected_window))) + && EQ (FRAME_MINIBUF_WINDOW (f), sf->selected_window))) */ Fredirect_frame_focus (gfocus, frame); } } -- 2.39.2