GNU bug report logs -
#41338
Toolbar-bug in Emacs 27.0.91/Pretest
Previous Next
Full log
Message #88 received at control <at> debbugs.gnu.org (full text, mbox):
close 41338 31.0.50
thanks
>>>> isearch uses overriding-terminal-local-map, so the proper test case is:
>>>>
>>>> (setq overriding-terminal-local-map
>>>> (let ((map (make-keymap)))
>>>> (define-key map [delete-frame]
>>>> (lambda (&rest ignore)
>>>> (interactive)
>>>> (message "DELETE-FRAME")))
>>>> (define-key map "!"
>>>> (lambda (&rest ignore)
>>>> (interactive)
>>>> (message "!")))
>>>> map))
>>>>
>>>> and indeed typing '!' you get the message,
>>>> but no message when clicking the `X' icon.
>>>
>>> The docstring of 'overriding-terminal-local-map' says:
>>>
>>> Per-terminal keymap that takes precedence over all other keymaps.
>>>
>>> so maybe this is right for a *per-terminal* keymap not to react
>>> to window events such as clicking the `X' icon?
>>
>> If there is no bug here, then I see two possible solutions for isearch:
>>
>> 1. use special-event-map in isearch.el the same way as isearch.el uses
>> overriding-terminal-local-map;
>>
>> 2. use the hook ‘delete-frame-functions’ to explicitly exit isearch.
>
> Since nobody proposed a better solution, here is a fix:
>
> diff --git a/lisp/isearch.el b/lisp/isearch.el
> index 505837de988..005376f8257 100644
> --- a/lisp/isearch.el
> +++ b/lisp/isearch.el
> @@ -1330,6 +1333,7 @@ isearch-mode
> (add-hook 'pre-command-hook 'isearch-pre-command-hook)
> (add-hook 'post-command-hook 'isearch-post-command-hook)
> (add-hook 'mouse-leave-buffer-hook 'isearch-mouse-leave-buffer)
> + (add-hook 'delete-frame-functions 'isearch-done)
> (add-hook 'kbd-macro-termination-hook 'isearch-done)
>
> ;; isearch-mode can be made modal (in the sense of not returning to
> @@ -1430,6 +1434,7 @@ isearch-done
> (remove-hook 'pre-command-hook 'isearch-pre-command-hook)
> (remove-hook 'post-command-hook 'isearch-post-command-hook)
> (remove-hook 'mouse-leave-buffer-hook 'isearch-mouse-leave-buffer)
> + (remove-hook 'delete-frame-functions 'isearch-done)
> (remove-hook 'kbd-macro-termination-hook 'isearch-done)
> (when (buffer-live-p isearch--current-buffer)
> (with-current-buffer isearch--current-buffer
So now this is pushed to master, and closed.
This bug report was last modified 363 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.