# HG changeset patch # User qz150045 # Date 1172730715 28800 # Node ID 62bca1a875426d2b0a9c0b2698874363b7e0bca1 # Parent 087c66d22b01a34603e314b6f8b419e5e456bfc0 6526932 shift key press is buffered by kernel driver and not sent to X immediately diff -r 087c66d22b01 -r 62bca1a87542 usr/src/uts/common/io/kbtrans/kbtrans_streams.c --- 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; } } }