[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Bug in SDL key event processing

From: Anthony Liguori
Subject: Re: [Qemu-devel] Bug in SDL key event processing
Date: Wed, 09 Jul 2008 22:19:20 -0500
User-agent: Thunderbird (X11/20080501)

Tomas Carnecky wrote:
Fair enough. I didn't know that.

But you said it yourself, SDL doesn't need the keymap table, it can translate the keycodes on its own. So where is the need to share the keymaps? Do other frontends need the keymaps as well? Anyway, whatever you do, please don't try to be smart, parse the SDL 'scancode' (which is the X11 keycode) and use that to get the 'real' scancode.

What you're saying is inaccurate. It's a confusing topic, so it's useful to get terminology straight.

There are two values available in SDL. The first is the SDL keyval. This is close to, but not guaranteed to be 100% compatible with X11 keycodes. You cannot get a PS/2 scancode directly from the keyval. You must use a locale-specific translation table.

SDL also supports a hardware keycode field. This field is not guaranteed to be filled out--it's not filled out on Windows. As a user-friendly optimization, if there is a valid hardware keycode field, we use that instead of using the locale-specific translation table. The hardware keycode field can be translated to a PS/2 scancode.

Maybe that works under win32, but under linux, the SDL scancode isn't guaranteed to be usable as an index into your x_keycode_to_pc_keycode table.

What's lost in your ranting is a concise description of the problem you've encountered. What behavior are you seeing and what behavior do you expect to see? What kind of physical keyboard do you have and what is your keyboard configured as in your host and in your guest? Are you using a '-k' option?

I'd be willing to wager that whatever problem you are encountering is a configuration error on your part (unless you're using a infrequently tested translation table).


Anthony Liguori


reply via email to

[Prev in Thread] Current Thread [Next in Thread]