>> There is still something missing: `gnus-article-describe-key` >> already selects the required buffer with `with-current-buffer`. >> Then why should it provide the same buffer as an argument >> to `describe-key` to select it again in `describe-key`? > > Because `describe-key` otherwise uses the buffer of the window > associated with the event (this is in done in `help--analyse-key` where > we currently use `mouse-set-point`). So we need to pass an explicit > buffer to tell `describe-key` to ignore the event's window (and we need > to change this part of `describe-key/help--analyse-key` to obey such a > buffer argument). > >> (defn (if (not buffer) >> (save-excursion (mouse-set-point event) (key-binding key t)) >> (key-binding key t))) >> >> IOW, the semantics of `buffer` is not clear here. > > If nil it means "defaults to the (window-buffer (posn-window (event-end event)))" > >>> OTOH we should probably try and change the `key` arg to use the new >>> key-list format expected by `describe-key` (i.e. a list of (SEQ >>> . RAW-SEQ) pairs). >> >> `gnus-article-describe-key` just passes down the value >> that `read-key-sequence` returns. > > I know. This is the old calling convention of `describe-key`; we > should move to the new one. Is seems everything is covered by this patch: