Hi Juri, On 27.01.2019 22:29, Juri Linkov wrote: >>> If only that patch were able to keep the current behavior by default. >> Yep. If Juri provides a simpler patch that does this I'm all for it. > Ok, here's 100% backward-compatible patch: So apparently this patch was installed, but without a link to the relevant bug report, and it was not closed either. Which is just as well, because my testing shows that it's really not 100% backward compatible. 1. display-buffer-in-previous-window, as I mentioned in another email, does not reliably use the supplied `previous-window' value. 2. 'C-x 4 .' followed by TAB (or RET) is broken: instead of using the other window, it uses the original window, just like M-. does. It's a misunderstanding inside the code, see below. > xref.simplify.patch > > diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el > index 87ce2299c5..9522d7e475 100644 > --- a/lisp/progmodes/xref.el > +++ b/lisp/progmodes/xref.el > @@ -474,27 +474,17 @@ xref--show-pos-in-buf > (or (eq xref--original-window-intent 'frame) > pop-up-frames)) > (action > - (cond ((memq > - xref--original-window-intent > - '(window frame)) > + (cond ((eq xref--original-window-intent 'frame) > t) > + ((eq xref--original-window-intent 'window) > + '(display-buffer-same-window)) That's not what the `window' value means. It should mean "other window". I really don't want to revert this change after all this discussion, but implementing it in a different way is not straightforward. My very first idea turned out to be to write it more or less like it was before. But here's an alternative patch. Juri, what do you think? Does it keep your customizations working?