Subject: Re: bug#47894: 28.0.50; isearch does not work if enable-recursive-minibuffers is on and some input method is set.

From: Gregory Heytings <[email-masked]>
Date: Wed, 21 Apr 2021 06:21:12 +0000

>> Additionally, on emacs-devel Zhiwei Chen said this:
>>
>>  It failed to work when buffer is auto selected via
>>  `display-buffer-alist’.  When the point moves to the *Occur* buffer,
>>  typing “n”, “p” still sends “n”, “p” to isearch.
>>
>>  (defun display-buffer-select (buffer alist)
>>    (let ((window (display-buffer-below-selected buffer alist)))
>>      (when (window-live-p window)
>>        (select-window window))))
>>
>>  (setq display-buffer-alist '(("\\*Occur\\*" (display-buffer-select))))
>> 
>> Maybe this could be handled as well?
>
> And this one is strange, too, for two reasons:
>
> - display-buffer-select is not a documented action, and does not even 
> appear in the sources (even Google does not find it!), yet it works;
>

Whooops, I guess I was becoming a bit tired after too many hours of 
hacking, of course it's defined right above ;-)  Anyway, the other 
question is relevant :

>
> - After this action, point has moved, but (current-buffer) does not 
> return the buffer where point is; (window-buffer (selected-window)) 
> does.  It seems to me that at the top-level these two should always be 
> equal; apparently they are not.
>
> Again it's not clear to me whether the bug is here or elsewhere, but the 
> attached patch fixes the original problem and the two bugs.
>
> Cc'ing Martin, who may have some insights on the above two points.
>