diff options
| author | Martin Rudalics | 2020-11-25 09:58:21 +0100 |
|---|---|---|
| committer | Martin Rudalics | 2020-11-25 09:58:21 +0100 |
| commit | 6442cdc0e4ec466841ff9c3d9016fecd7b72b5a1 (patch) | |
| tree | fb79407806ec5a4dda34700e7832bc8a9bb62f21 /src | |
| parent | fc4379f1aedd6b1ebae722b967a7e6feb30fa2a6 (diff) | |
| download | emacs-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.c | 10 |
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 | } |