Messages in this thread | | | Date | Wed, 27 Aug 2003 12:50:56 +0200 | From | Andries Brouwer <> | Subject | Re: PROBLEM: keyboard shift not registered under fast typing or auto-repeat |
| |
On Tue, Aug 26, 2003 at 08:38:50PM -0400, Carl Nygard wrote:
> Summary: Keyboard shift state not registered under fast typing or > autorepeat > > If someone can help point me where to look at the code, I've already > looked into ./drivers/char/keyboard.c but didn't see anything obvious. > More specific help would be appreciated.
You must look at input/input.c at occurrences of repeat_key. (And afterwards at char/keyboard.c at kbd_event, kbd_keycode.)
You'll see that the current 2.6 code ignores a lot of what the keyboard is telling us and synthesizes its own events.
What happens in your autorepeat case: - Press a key, repeat_key is set to its keycode. If you keep it pressed then the keyboard repeats are ignored, but the kernel generates its own repeats using a timer. - Press Shift, repeat_key is set to its keycode. Now the timer repeat generates repeats of the Shift-down event, but that does not generate keyboard input.
But in your autorepeat case the kernel does precisely what the keyboard also would have done: repeat the last key that was pressed. Also the hardware keyboard does not send anything after Press A, Press Shift, Release Shift.
Incidentally, both add_keyboard_randomness() and add_mouse_randomness() are called - we invent more randomness than one might have thought at first.
Andries
> Kernel doesn't register shift state when typing quickly. Example, 'ls > *' shows up as 'ls 8' when typed fast. Also, holding '-' key down, once > it's repeating, shift key makes no difference.
So, the first part of what you say, when true, would be a bug. But a bug difficult to distinguish from a finger coordination error. The second part is correct behaviour.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |