Merge from origin/emacs-28

f38dfa56a0 ; Update loaddefs files.
b3d4b18507 ; make change-history-commit
334ff0232e * lisp/repeat.el: Use same logic for repeat-check-key and ...
8230a47ecc * lisp/help.el (help--analyze-key): Prefer posn-set-point ...

# Conflicts:
#	lisp/ldefs-boot.el
This commit is contained in:
Stefan Kangas 2021-12-02 17:34:10 +01:00
commit 48d1e6e9d9
4 changed files with 54 additions and 23 deletions

View file

@ -1,3 +1,33 @@
2021-12-01 Juri Linkov <juri@linkov.net>
* lisp/repeat.el: Use same logic for repeat-check-key and repeat-exit-timeout.
* lisp/repeat.el (repeat-check-key): Use for repeat-check-key the same logic
as is used for repeat-exit-timeout in repeat-post-hook (bug#51390).
(repeat-post-hook): Check for repeat-exit-timeout symbol property.
2021-12-01 Juri Linkov <juri@linkov.net>
* lisp/help.el (help--analyze-key): Prefer posn-set-point over mouse-set-point
* lisp/help.el (help--analyze-key): Use posn-set-point instead of
mouse-set-point that runs the hook mouse-leave-buffer-hook via
mouse-minibuffer-check. Using posn-set-point also unnecessitates
extra conditions added in bug#51421.
* lisp/isearch.el (isearch-describe-key, isearch-describe-mode):
Add precautions to not call isearch-update when the executed
command exited isearch-mode (bug#51173).
2021-12-01 Stefan Kangas <stefan@marxist.se>
Bump Emacs version to 28.0.90
* README:
* configure.ac:
* msdos/sed2v2.inp:
* nt/README.W32: Bump Emacs version to 28.0.90.
2021-12-01 Alan Mackenzie <acm@muc.de>
CC Mode: Recognise "struct foo {" as introducing a type declaration
@ -233383,7 +233413,7 @@
This file records repository revisions from
commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to
commit 2be090d5d3002e2ddfc8dbe46c29536f7410a86d (inclusive).
commit 334ff0232e07dad2ff5595b7f85c0f6f5efcb11c (inclusive).
See ChangeLog.2 for earlier changes.
;; Local Variables:

View file

@ -704,18 +704,14 @@ in the selected window."
(mouse-msg (if (or (memq 'click modifiers) (memq 'down modifiers)
(memq 'drag modifiers))
" at that spot" ""))
;; Use `mouse-set-point' to handle the case when a menu item
;; Use `posn-set-point' to handle the case when a menu item
;; is selected from the context menu that should describe KEY
;; at the position of mouse click that opened the context menu.
;; When no mouse was involved, don't use `mouse-set-point'.
(defn (if (or buffer
;; Clicks on the menu bar produce "event" that
;; is just '(menu-bar)', for which
;; `mouse-set-point' is not useful.
(and (not (windowp (posn-window (event-start event))))
(not (framep (posn-window (event-start event))))))
;; When no mouse was involved, don't use `posn-set-point'.
(defn (if buffer
(key-binding key t)
(save-excursion (mouse-set-point event) (key-binding key t)))))
(save-excursion (posn-set-point (event-end event))
(key-binding key t)))))
;; Handle the case where we faked an entry in "Select and Paste" menu.
(when (and (eq defn nil)
(stringp (aref key (1- (length key))))

View file

@ -521,14 +521,14 @@ This is like `describe-bindings', but displays only Isearch keys."
(interactive)
(let ((display-buffer-overriding-action isearch--display-help-action))
(call-interactively 'describe-key))
(isearch-update))
(when isearch-mode (isearch-update)))
(defun isearch-describe-mode ()
"Display documentation of Isearch mode."
(interactive)
(let ((display-buffer-overriding-action isearch--display-help-action))
(describe-function 'isearch-forward))
(isearch-update))
(when isearch-mode (isearch-update)))
(defalias 'isearch-mode-help 'isearch-describe-mode)

View file

@ -345,7 +345,9 @@ For example, you can set it to <return> like `isearch-exit'."
(defcustom repeat-exit-timeout nil
"Break the repetition chain of keys after specified timeout.
When a number, exit the transient repeating mode after idle time
of the specified number of seconds."
of the specified number of seconds.
You can also set the property `repeat-exit-timeout' on the command symbol.
This property can override the value of this variable."
:type '(choice (const :tag "No timeout to exit repeating sequence" nil)
(number :tag "Timeout in seconds to exit repeating"))
:group 'convenience
@ -431,8 +433,9 @@ See `describe-repeat-maps' for a list of all repeatable commands."
(defun repeat-check-key (key map)
"Check if the last key is suitable to activate the repeating MAP."
(let ((property (repeat--command-property 'repeat-check-key)))
(or (if repeat-check-key (eq property 'no) (not (eq property t)))
(let* ((prop (repeat--command-property 'repeat-check-key))
(check-key (unless (eq prop 'no) (or prop repeat-check-key))))
(or (not check-key)
(lookup-key map (vector key))
;; Try without modifiers:
(lookup-key map (vector (event-basic-type key))))))
@ -475,14 +478,16 @@ See `describe-repeat-maps' for a list of all repeatable commands."
(cancel-timer repeat-exit-timer)
(setq repeat-exit-timer nil))
(when repeat-exit-timeout
(setq repeat-exit-timer
(run-with-idle-timer
repeat-exit-timeout nil
(lambda ()
(setq repeat-in-progress nil)
(funcall exitfun)
(funcall repeat-echo-function nil)))))))))))
(let* ((prop (repeat--command-property 'repeat-exit-timeout))
(timeout (unless (eq prop 'no) (or prop repeat-exit-timeout))))
(when timeout
(setq repeat-exit-timer
(run-with-idle-timer
timeout nil
(lambda ()
(setq repeat-in-progress nil)
(funcall exitfun)
(funcall repeat-echo-function nil))))))))))))
(setq repeat-map nil)
(setq repeat--prev-mb (cons (minibuffer-depth) current-minibuffer-command))