diff options
| author | Jonas Bernoulli <jonas@bernoul.li> | 2024-11-02 12:54:01 +0100 |
|---|---|---|
| committer | Jonas Bernoulli <jonas@bernoul.li> | 2024-11-02 12:54:01 +0100 |
| commit | d9ced840fa89dba2e22708d1e247f310da139245 (patch) | |
| tree | a296b0fd268a66ee54b3f1de8f6a69e17aeecdbb /CHANGELOG | |
| parent | 0ed009491910f5466ad7f95b4576e9dde7156f4e (diff) | |
transient--make-redisplay-map: Ensure unread-command-events is used
We use an additional transient keymap, which binds every incomplete key
sequence, which exists in the keymap with the real suffix bindings, to
the command `transient-update'. That command updates the menu, dimming
all the suffixes that can no longer be reached using the current
incomplete key sequence. Additionally it sets `unread-command-events'
to the incomplete key sequence. This command is called for every key
in the sequence individually, but it sets the variable to the full
sequence.
Turns out, for many purposes, all but the first of these events is
ignored, which matters as soon as the final sequence has more than two
elements. We could start using `this-single-command-raw-keys' more,
as that always returns the full sequence, but that would not help with
features implemented outside of Emacs (such as the incomplete sequence
being shown in the echo area). So instead use the special (t . KEY)
form for elements added to `unread-command-events'. That way we get
the same behavior we would get if the redisplay map did not exist.
Fixes #324 and similar issues.
Diffstat (limited to 'CHANGELOG')
| -rw-r--r-- | CHANGELOG | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -18,6 +18,9 @@ Bug fixes: ~transient-current-*~ variables were not immediately reset to ~nil~. #323 +- Key sequences with three or more events broke + ~transient-suffix-object~. #324 + * v0.7.7 2024-10-04 Bug fix: |
