all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Juri Linkov <juri@linkov.net>
To: Gregory Heytings <gregory@heytings.org>
Cc: max.brieiev@gmail.com, 47894@debbugs.gnu.org
Subject: bug#47894: 28.0.50; isearch does not work if enable-recursive-minibuffers is on and some input method is set.
Date: Wed, 21 Apr 2021 20:02:02 +0300	[thread overview]
Message-ID: <87o8e7bmgl.fsf@mail.linkov.net> (raw)
In-Reply-To: <192e82f20f92affaec0e@heytings.org> (Gregory Heytings's message of "Wed, 21 Apr 2021 07:49:28 +0000")

[-- Attachment #1: Type: text/plain, Size: 1134 bytes --]

>> For users (eq (current-buffer) (window-buffer)) _should_ be
>> invariant. When and if an application temporarily violates that
>> invariant, it should reestablish it before the user can see it.  So if an
>> application calls `display-buffer' in a state where the invariant does
>> not hold, it should handle that case including the complication that
>> `display-buffer' might have selected another window.  And it goes without
>> saying that a display buffer action should never violate that invariant.
>
> I see.  So in this case the bug was elsewhere as I thought, it's
> display-buffer-select which was wrong (as you said it should have used
> pop-to-buffer) and not the code I added in
> isearch-post-command-hook. Anyway using (window-buffer (selected-window))
> should not harm, and is an extra safety against display buffer actions
> doing something weird.

As this bug report indicates, automatically exiting isearch does more harm.
So rather than forcibly exit isearch, we could select the original window
back, in the same vein as isearch-back-into-window in the same hook
moves point back to the old window boundaries:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: isearch-post-command-hook-select-window.patch --]
[-- Type: text/x-diff, Size: 483 bytes --]

diff --git a/lisp/isearch.el b/lisp/isearch.el
index f1e6e3eba2..1dfb0c86fc 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -3052,6 +3057,8 @@ isearch-pre-command-hook
       (isearch-clean-overlays)))))
 
 (defun isearch-post-command-hook ()
+   (unless (eq (selected-window) (old-selected-window))
+     (select-window (old-selected-window)))
    (when isearch-pre-scroll-point
      (let ((ab-bel (isearch-string-out-of-window isearch-pre-scroll-point)))
        (if ab-bel

  reply	other threads:[~2021-04-21 17:02 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-19 16:06 bug#47894: 28.0.50; y.oy max.brieiev
2021-04-19 16:31 ` bug#47894: 28.0.50; isearch does not work if enable-recursive-minibuffers is on and some input method is set max.brieiev
2021-04-19 20:49   ` Juri Linkov
2021-04-20 20:00 ` Juri Linkov
2021-04-20 20:15   ` Gregory Heytings
2021-04-20 21:51     ` Gregory Heytings
2021-04-20 22:35     ` Gregory Heytings
2021-04-21  6:21       ` Gregory Heytings
2021-04-21  7:03       ` martin rudalics
2021-04-21  7:16         ` Gregory Heytings
2021-04-21  7:42           ` martin rudalics
2021-04-21  7:49             ` Gregory Heytings
2021-04-21 17:02               ` Juri Linkov [this message]
2021-04-21 17:18                 ` Gregory Heytings
2021-04-21 17:37                   ` Juri Linkov
2021-04-21 17:59                 ` Juri Linkov
2021-04-21 19:23                   ` Juri Linkov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87o8e7bmgl.fsf@mail.linkov.net \
    --to=juri@linkov.net \
    --cc=47894@debbugs.gnu.org \
    --cc=gregory@heytings.org \
    --cc=max.brieiev@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.