Subject: bug#19468: 25.0.50; UI inconveniences with M-.

From: Dmitry Gutov <[email-masked]>
Date: Tue, 06 Jan 2015 13:39:03 +0300

On 01/05/2015 10:08 AM, martin rudalics wrote:
>  > In all likelihood, we've displayed several buffers in succession in
> that other window. Or none. Doing `quit-window' there exactly once won't
> suffice.
>
> It should, conceptually.

One `quit-window' would switch to the buffer below it. If that one was 
also displayed by xref, we don't gain much at all.

And what if, like I already mentioned, xref hasn't displayed any xref 
definitions yet?

> We have two windows we want to quit simultaneously.

Quit windows or not, that's an implementation detail. We want to restore 
window configuration before xref, but only if the user hasn't tampered 
with it in the process.

> Any of them could
> have been made specially for xrefing

Not really: `xref--display-position' calls (display-buffer 
(current-buffer) t).

> The entire information what to do should be in the `quit-restore'
> parameter of any of these windows.  If what I described above doesn't
> work out automatically you might have to adjust the `quit-restore'
> parameter manually.  But it should work automatically.

What then, you would rather I save the original buffer displayed in the 
other window, and then changed the `quit-restore' parameter in that 
window before quitting? I could just as well do all the `bury-buffer' 
myself.

And that won't take care of the case when the window configuration is 
changed by anything other than xref.

I've pushed my implementation using `quit-window' to scratch/xref, 
please take a look. What would you do better?