Mercurial > emacs
changeset 51179:52ab727d168b
(read_key_sequence): Adjust fkey and keytran when dropping `down' events.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Sat, 24 May 2003 14:52:10 +0000 |
parents | 4f760005cf14 |
children | 8444fb4d51cf |
files | src/keyboard.c |
diffstat | 1 files changed, 21 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/keyboard.c Sat May 24 14:10:53 2003 +0000 +++ b/src/keyboard.c Sat May 24 14:52:10 2003 +0000 @@ -9138,6 +9138,27 @@ xterm-mouse-mode. -stef Isn't this just the most wonderful code ever? */ + + /* If mock_input > t + 1, the above simplification + will actually end up dropping keys on the floor. + This is probably OK for now, but even + if mock_input <= t + 1, we need to adjust fkey + and keytran. + Typical case [header-line down-mouse-N]: + mock_input = 2, t = 1, fkey.end = 1, + last_real_key_start = 0. */ + if (fkey.end > last_real_key_start) + { + fkey.end = fkey.start + = min (last_real_key_start, fkey.start); + fkey.map = fkey.parent; + if (keytran.end > last_real_key_start) + { + keytran.end = keytran.start + = min (last_real_key_start, keytran.start); + keytran.map = keytran.parent; + } + } if (t == last_real_key_start) { mock_input = 0;