Subject: bug#31695: [email-masked]

From: Eli Zaretskii <[email-masked]>
Date: Mon, 04 Jun 2018 19:29:12 +0300

> Date: Sun, 03 Jun 2018 19:38:23 +0300
> From: Eli Zaretskii <[email-masked]>
> Cc: [email-masked], [email-masked]
> 
> > Date: Sun, 03 Jun 2018 14:21:58 +0200
> > From: martin rudalics <[email-masked]>
> > 
> > This works correctly here in Emacs 23.4.1 and is broken in 24.5.50.1.
> 
> It became broken in Emacs 24.3, according to my testing.
> 
> > If Eli doesn't come up with a clue, could someone with a fast machine
> > please try to bisect this.
> 
> Right.
> 
> If no one comes up with the culprit, I will look into this tomorrow.

I took a look, but as expected, got lost among twisted little
passages, all alike.  It looks like the problem might be with the
insane dance we perform when entering recursive edit in the
minibuffer, where we save and restore the window configuration of the
selected frame, and also of the frame that serves as the minibuffer
frame for the selected frame.  Another potential culprit is
select_window_1, which added the call to set_point_from_marker at its
end, something that wasn't there in Emacs 24.2.

In any case, the immediate cause of the problem is that when redisplay
is entered the offending window is selected and has its point set at
BOB.  So redisplays redraws it accordingly.

Btw, note that if you modify the recipe to do it from frame $a, the
problem doesn't happen.  Which seems to imply that this is somehow
related to the order in which redisplay redraws frames.  I think.

Let me know if I can help more.