diff options
| author | Joakim Jalap | 2016-08-13 12:26:27 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2016-08-13 12:26:27 +0300 |
| commit | c1021ba910efac334027ad03ff6aed64306fad3c (patch) | |
| tree | 00f3563dc739ac8dc33847faa90f8a96efc4397b | |
| parent | 6bb55a25fa77ce0f92401aa9945a506e9343aad5 (diff) | |
| download | emacs-c1021ba910efac334027ad03ff6aed64306fad3c.tar.gz emacs-c1021ba910efac334027ad03ff6aed64306fad3c.zip | |
Fix "C-u" when an input method is active
* lisp/international/quail.el (quail-input-method): Defer to the
input method iff 'overriding-terminal-local-map' is
'universal-argument-map' and the given key has no binding there.
(Bug#22958)
| -rw-r--r-- | lisp/international/quail.el | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/lisp/international/quail.el b/lisp/international/quail.el index f5e390278ca..320d783d410 100644 --- a/lisp/international/quail.el +++ b/lisp/international/quail.el | |||
| @@ -1333,7 +1333,15 @@ If STR has `advice' text property, append the following special event: | |||
| 1333 | 1333 | ||
| 1334 | (defun quail-input-method (key) | 1334 | (defun quail-input-method (key) |
| 1335 | (if (or buffer-read-only | 1335 | (if (or buffer-read-only |
| 1336 | overriding-terminal-local-map | 1336 | (and overriding-terminal-local-map |
| 1337 | ;; If the overriding map is `universal-argument-map', that | ||
| 1338 | ;; must mean the user has pressed 'C-u KEY'. If KEY has a | ||
| 1339 | ;; binding in `universal-argument-map' just return | ||
| 1340 | ;; (list KEY), otherwise act as if there was no | ||
| 1341 | ;; overriding map. | ||
| 1342 | (or (not (eq (cadr overriding-terminal-local-map) | ||
| 1343 | universal-argument-map)) | ||
| 1344 | (lookup-key overriding-terminal-local-map (vector key)))) | ||
| 1337 | overriding-local-map) | 1345 | overriding-local-map) |
| 1338 | (list key) | 1346 | (list key) |
| 1339 | (quail-setup-overlays (quail-conversion-keymap)) | 1347 | (quail-setup-overlays (quail-conversion-keymap)) |