GNU bug report logs -
#41338
Toolbar-bug in Emacs 27.0.91/Pretest
Previous Next
Full log
Message #83 received at 41338 <at> debbugs.gnu.org (full text, mbox):
>>> 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
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.