aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMartin Rudalics2020-11-25 09:58:21 +0100
committerMartin Rudalics2020-11-25 09:58:21 +0100
commit6442cdc0e4ec466841ff9c3d9016fecd7b72b5a1 (patch)
treefb79407806ec5a4dda34700e7832bc8a9bb62f21 /src
parentfc4379f1aedd6b1ebae722b967a7e6feb30fa2a6 (diff)
downloademacs-6442cdc0e4ec466841ff9c3d9016fecd7b72b5a1.tar.gz
emacs-6442cdc0e4ec466841ff9c3d9016fecd7b72b5a1.zip
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.
Diffstat (limited to 'src')
-rw-r--r--src/frame.c10
1 files 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
1427 if (FRAMEP (gfocus)) 1427 if (FRAMEP (gfocus))
1428 { 1428 {
1429 focus = FRAME_FOCUS_FRAME (XFRAME (gfocus)); 1429 focus = FRAME_FOCUS_FRAME (XFRAME (gfocus));
1430 if ((FRAMEP (focus) && XFRAME (focus) == SELECTED_FRAME ()) 1430 if (FRAMEP (focus) && XFRAME (focus) == SELECTED_FRAME ())
1431 /* Redirect frame focus also when FRAME has its minibuffer 1431 /* Redirect frame focus also when FRAME has its minibuffer
1432 window on the selected frame (see Bug#24500). */ 1432 window on the selected frame (see Bug#24500).
1433
1434 Don't do that: It causes redirection problem with a
1435 separate minibuffer frame (Bug#24803) and problems
1436 when updating the cursor on such frames.
1433 || (NILP (focus) 1437 || (NILP (focus)
1434 && EQ (FRAME_MINIBUF_WINDOW (f), sf->selected_window))) 1438 && EQ (FRAME_MINIBUF_WINDOW (f), sf->selected_window))) */
1435 Fredirect_frame_focus (gfocus, frame); 1439 Fredirect_frame_focus (gfocus, frame);
1436 } 1440 }
1437 } 1441 }