Subject: Re: bug#7464: 24.0.50; mouse highlighting vanishes upon unsplitting window

From: martin rudalics <[email-masked]>
Date: Sun, 25 Mar 2012 14:56:46 +0200

>> Now, "C-x 1" calls delete-other-windows-internal, which, as part of
 >> its job, deletes the glyph matrices of the original window.  With that
 >> deletion, those flags of the highlighted rows are reset, i.e. the
 >> information about the highlight stored in the glyph matrix is lost.
 >> But no one tells redisplay that the mouse highlight was effectively
 >> overwritten, and that it should arrange for it to be redisplayed.
[...]
 > According to my observations it is a regression, though I don't know why
 > your observations differ from mine.  Does your patch also fix Emacs 23
 > for you?  Since the code involved changed significantly between Emacs 23
 > and 24, I'm curious if your fix also applies to Emacs 23 -- would it go
 > before the invocation of free_window_matrices in delete_window?  But if
 > so, why do I not see the bug in Emacs 23?  (And why does Chong Yidong
 > not see it in Emacs 24?)

I'm not sure whether it's relevant but `delete-other-windows' has been
rewritten completely.  With Emacs 23 it used window_loop to walk over
the windows of the frame and kill them one after the other.  With Emacs
24 it simply replaces the frame's root window with the argument window.
This also means that the implementation of `delete-other-windows' is
now completely independent from that of `delete-window'.

martin