Mercurial > illumos > illumos-gate
changeset 3739:62bca1a87542
6526932 shift key press is buffered by kernel driver and not sent to X immediately
author | qz150045 |
---|---|
date | Wed, 28 Feb 2007 22:31:55 -0800 |
parents | 087c66d22b01 |
children | 49e8b86bee75 |
files | usr/src/uts/common/io/kbtrans/kbtrans_streams.c |
diffstat | 1 files changed, 3 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/uts/common/io/kbtrans/kbtrans_streams.c Wed Feb 28 22:15:26 2007 -0800 +++ b/usr/src/uts/common/io/kbtrans/kbtrans_streams.c Wed Feb 28 22:31:55 2007 -0800 @@ -463,15 +463,13 @@ upper->kbtrans_streams_abort1_key = key; return; } - + /* Shift key needs to be sent to upper immediately */ if (key == (kbtrans_key_t)kp->k_newabort1 || key == (kbtrans_key_t)kp->k_newabort1a) { upper->kbtrans_streams_abort_state = NEW_ABORT_ABORT1_RECEIVED; upper->kbtrans_streams_new_abort1_key = key; - return; } - break; case ABORT_ABORT1_RECEIVED: upper->kbtrans_streams_abort_state = ABORT_NORMAL; @@ -491,12 +489,11 @@ if (state == KEY_PRESSED && key == (kbtrans_key_t)kp->k_newabort2) { abort_sequence_enter((char *)NULL); - return; - } else { kbtrans_processkey(lower, upper->kbtrans_streams_callback, upper->kbtrans_streams_new_abort1_key, - KEY_PRESSED); + KEY_RELEASED); + return; } } }