emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

emacs-27 6442cdc: Revert extra focus redirection in do_switch_frame (Bug


From: Martin Rudalics
Subject: emacs-27 6442cdc: Revert extra focus redirection in do_switch_frame (Bug#24803)
Date: Wed, 25 Nov 2020 03:59:48 -0500 (EST)

branch: emacs-27
commit 6442cdc0e4ec466841ff9c3d9016fecd7b72b5a1
Author: Martin Rudalics <rudalics@gmx.at>
Commit: Martin Rudalics <rudalics@gmx.at>

    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 adcc489..16f6d6c 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);
        }
     }



reply via email to

[Prev in Thread] Current Thread [Next in Thread]