[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#55412: 28.1; In Emacs 28.1, using ':eval' in 'frame-title-format' do
From: |
Alan Mackenzie |
Subject: |
bug#55412: 28.1; In Emacs 28.1, using ':eval' in 'frame-title-format' doesn't work properly |
Date: |
Wed, 18 May 2022 15:49:36 +0000 |
Hello, Martin and Eli.
On Wed, May 18, 2022 at 17:01:43 +0200, martin rudalics wrote:
> >> When I type M-:, save the expression to evaluate from some other frame,
> >> and the subsequent yank inserts that expression into a normal buffer
> >> instead of the minibuffer, the resulting behavior does not constitute a
> >> less important inconsistency but an annoying regression. This is one of
> >> the things that used to work "ever since".
> > Can you tell more about the inconsistency you get in this scenario?
> > I'm afraid I don't follow the description and therefore cannot try
> > reproducing it myself.
> Suppose I want to calculate the sum of two numbers: number-1 is shown in
> a buffer on frame-1, number-2 is show in a buffer on frame-2. I start
> typing M-: (+ on frame-1 then I do C-x o, mark number-1, type M-w, C-x o
> and C-y to yank number-1 into the minibuffer. Then I add a space to the
> minibuffer, type C-x 5 o to go to frame-2, mark number-2, type M-w and
> C-x 5 o to get back to frame-1.
> Ever since, that last C-x 5 o got me to the minibuffer window. With the
> proposed change, that C-x 5 o will get me to the window of number-1 and
> I have to manually select the minibuffer window to yank number-2 there.
Please try the following patch, which may solve the above problem
without hurting the bug fix.
diff --git a/src/frame.c b/src/frame.c
index ccac18d23c..7869726850 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -1564,6 +1564,10 @@ do_switch_frame (Lisp_Object frame, int track, int
for_deletion, Lisp_Object nor
if (! FRAME_MINIBUF_ONLY_P (XFRAME (selected_frame)))
last_nonminibuf_frame = XFRAME (selected_frame);
+ if (EQ (f->selected_window, f->minibuffer_window)
+ && NILP (Fminibufferp (XWINDOW (f->minibuffer_window)->contents, Qt)))
+ Fset_frame_selected_window (frame, Fframe_first_window (frame), Qnil);
+
Fselect_window (f->selected_window, norecord);
/* We want to make sure that the next event generates a frame-switch
diff --git a/src/frame.h b/src/frame.h
index 0b8cdf62de..87c44dd22b 100644
--- a/src/frame.h
+++ b/src/frame.h
@@ -123,7 +123,8 @@ #define EMACS_FRAME_H
/* This frame's selected window.
Each frame has its own window hierarchy
and one of the windows in it is selected within the frame.
- The selected window of the selected frame is Emacs's selected window. */
+ The selected window of the selected frame is Emacs's selected window.
+ This window may be the mini-window of the frame. */
Lisp_Object selected_window;
/* This frame's selected window when run_window_change_functions was
diff --git a/src/minibuf.c b/src/minibuf.c
index 847e7be5ad..66aed0ad70 100644
--- a/src/minibuf.c
+++ b/src/minibuf.c
@@ -203,14 +203,6 @@ move_minibuffers_onto_frame (struct frame *of, bool
for_deletion)
zip_minibuffer_stacks (f->minibuffer_window, of->minibuffer_window);
if (for_deletion && XFRAME (MB_frame) != of)
MB_frame = selected_frame;
- if (!for_deletion
- && MINI_WINDOW_P (XWINDOW (FRAME_SELECTED_WINDOW (of))))
- {
- Lisp_Object old_frame;
- XSETFRAME (old_frame, of);
- Fset_frame_selected_window (old_frame,
- Fframe_first_window (old_frame), Qnil);
- }
}
}
diff --git a/src/xdisp.c b/src/xdisp.c
index 6963935666..7e166121df 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -12796,8 +12796,10 @@ gui_consider_frame_title (Lisp_Object frame)
mode_line_noprop_buf; then display the title. */
record_unwind_protect (unwind_format_mode_line,
format_mode_line_unwind_data
- (NULL, current_buffer, Qnil, false));
+ (f, current_buffer, selected_window, false)
+ /* (NULL, current_buffer, Qnil, false) */);
+ Fselect_window (f->selected_window, Qt);
set_buffer_internal_1
(XBUFFER (XWINDOW (f->selected_window)->contents));
fmt = FRAME_ICONIFIED_P (f) ? Vicon_title_format : Vframe_title_format;
> martin
--
Alan Mackenzie (Nuremberg, Germany).
- bug#55412: 28.1; In Emacs 28.1, using ':eval' in 'frame-title-format' doesn't work properly, (continued)
- bug#55412: 28.1; In Emacs 28.1, using ':eval' in 'frame-title-format' doesn't work properly, Eli Zaretskii, 2022/05/14
- bug#55412: 28.1; In Emacs 28.1, using ':eval' in 'frame-title-format' doesn't work properly, Eli Zaretskii, 2022/05/14
- bug#55412: 28.1; In Emacs 28.1, using ':eval' in 'frame-title-format' doesn't work properly, Alan Mackenzie, 2022/05/15
- bug#55412: 28.1; In Emacs 28.1, using ':eval' in 'frame-title-format' doesn't work properly, Alan Mackenzie, 2022/05/16
- bug#55412: 28.1; In Emacs 28.1, using ':eval' in 'frame-title-format' doesn't work properly, Eli Zaretskii, 2022/05/17
- bug#55412: 28.1; In Emacs 28.1, using ':eval' in 'frame-title-format' doesn't work properly, martin rudalics, 2022/05/18
- bug#55412: 28.1; In Emacs 28.1, using ':eval' in 'frame-title-format' doesn't work properly, Eli Zaretskii, 2022/05/18
- bug#55412: 28.1; In Emacs 28.1, using ':eval' in 'frame-title-format' doesn't work properly, martin rudalics, 2022/05/18
- bug#55412: 28.1; In Emacs 28.1, using ':eval' in 'frame-title-format' doesn't work properly, Alan Mackenzie, 2022/05/18
- bug#55412: 28.1; In Emacs 28.1, using ':eval' in 'frame-title-format' doesn't work properly,
Alan Mackenzie <=
- bug#55412: 28.1; In Emacs 28.1, using ':eval' in 'frame-title-format' doesn't work properly, Eli Zaretskii, 2022/05/18
- bug#55412: 28.1; In Emacs 28.1, using ':eval' in 'frame-title-format' doesn't work properly, Alan Mackenzie, 2022/05/18
- bug#55412: 28.1; In Emacs 28.1, using ':eval' in 'frame-title-format' doesn't work properly, Eli Zaretskii, 2022/05/18
- bug#55412: 28.1; In Emacs 28.1, using ':eval' in 'frame-title-format' doesn't work properly, martin rudalics, 2022/05/20
- bug#55412: 28.1; In Emacs 28.1, using ':eval' in 'frame-title-format' doesn't work properly, Eli Zaretskii, 2022/05/20
- bug#55412: 28.1; In Emacs 28.1, using ':eval' in 'frame-title-format' doesn't work properly, martin rudalics, 2022/05/21
- bug#55412: 28.1; In Emacs 28.1, using ':eval' in 'frame-title-format' doesn't work properly, Eli Zaretskii, 2022/05/21
- bug#55412: 28.1; In Emacs 28.1, using ':eval' in 'frame-title-format' doesn't work properly, Alan Mackenzie, 2022/05/20
- bug#55412: 28.1; In Emacs 28.1, using ':eval' in 'frame-title-format' doesn't work properly, Eli Zaretskii, 2022/05/20
- bug#55412: 28.1; In Emacs 28.1, using ':eval' in 'frame-title-format' doesn't work properly, martin rudalics, 2022/05/21