]> git.eshelyaron.com Git - emacs.git/commitdiff
Revert extra focus redirection in do_switch_frame (Bug#24803)
authorMartin Rudalics <rudalics@gmx.at>
Wed, 25 Nov 2020 08:58:21 +0000 (09:58 +0100)
committerMartin Rudalics <rudalics@gmx.at>
Wed, 25 Nov 2020 08:58:21 +0000 (09:58 +0100)
* 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

index adcc489a40631d73aa0d64b88140017b306b53d8..16f6d6c460796fc33c1e0fe376304766067ec74a 100644 (file)
@@ -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);
        }
     }