GNU bug report logs -
#34317
26.1.90; Wrong unbinding order in x_consider_frame_title
Previous Next
Reported by: martin rudalics <rudalics <at> gmx.at>
Date: Mon, 4 Feb 2019 18:51:01 UTC
Severity: normal
Found in version 26.1.90
Fixed in version 27.1
Done: Noam Postavsky <npostavs <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
Message #23 received at 34317 <at> debbugs.gnu.org (full text, mbox):
> Date: Sun, 24 Feb 2019 09:43:09 +0100
> From: martin rudalics <rudalics <at> gmx.at>
> CC: 34317 <at> debbugs.gnu.org
>
> * src/xdisp.c (x_consider_frame_title): Bind inhibit-redisplay to
> t to avoid resizing back the mini-window as result of considering
> the title of other frames. (Bug#24285)
> (redisplay_window): No need to bind inhibit-redisplay here.
>
>
> This means that in x_consider_frame_title we now do
>
> ptrdiff_t count = SPECPDL_INDEX ();
>
> ...
>
> record_unwind_protect (unwind_format_mode_line,
> format_mode_line_unwind_data
> (f, current_buffer, selected_window, false));
> ...
>
> specbind (Qinhibit_redisplay, Qt);
>
> Fselect_window (f->selected_window, Qt);
>
> ...
>
> unbind_to (count, Qnil);
>
> where unwind_format_mode_line does
>
> Fselect_window (old_window, Qt);
>
> The asymmetry I mentioned is that while binding Qinhibit_redisplay
> covers the Fselect_window call in x_consider_frame_title, it does not
> cover the Fselect_window in unwind_format_mode_line since that is
> performed _after_ the special binding of Qinhibit_redisplay has been
> abolished. Which means that we call resize_mini_window for the first
> call when the corresponding windows are on different frames but not
> for the second.
I cannot imagine that was on purpose.
But your proposed change fixes that, so I'm unsure why you said it
won't work OOTB. What did I miss?
This bug report was last modified 6 years and 111 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.