qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v2] Fixes key mapping so all keys work


From: Programmingkid
Subject: Re: [Qemu-devel] [PATCH v2] Fixes key mapping so all keys work
Date: Tue, 12 May 2015 00:11:11 -0400

On May 10, 2015, at 2:45 PM, Peter Maydell wrote:

> On 15 January 2015 at 21:13, Programmingkid <address@hidden> wrote:
>> Fixes keyboard mapping so right shift, right command, right option, right 
>> control, keypad period, keypad '=', keypad enter, and F13 all work.
>> 
>> Signed-off-by: John Arbuckle <address@hidden>
>> 
>> ---
>> Undid most changes to keyboard map in cocoa.m.
>> Most changes made to keyboard map in adb.c.
>> Since there is no keypad '=' key for the PC/AT or PC/XT layouts, I had to 
>> invent my own number for it. It works for the Mac OS X guest. Guest like 
>> Windows XP are not effected because they don't use the Macintosh keyboard 
>> layout.
>> 
>> Signed-off-by: John Arbuckle <address@hidden>
>> 
>> ---
>> hw/input/adb.c |    8 ++++----
>> ui/cocoa.m     |    4 ++--
> 
> This is two conceptually separate fixes:
> (1) better handle key input to the ADB keyboard
> (2) output the right keycodes on the OSX cocoa UI
> which should be in separate patches.
> 
> We should also be doing the support for keypad-= by converting both
> the cocoa UI and the ADB keyboard device to the QKeyCode APIs,
> which can cleanly handle these key without inventing fake PC
> keycode numbers, as suggested by Gerd:
> https://lists.gnu.org/archive/html/qemu-devel/2015-02/msg01322.html

So what you want is to eliminate the ps/xt key mappings found in the cocoa.m 
and use the QKeyCode API?

I really didn't like how in the cocoa.m file, a key press is first translated 
to a ps/xt key value, then translated to a Macintosh ADB keycode. 

Basically this: 
Macintosh host key code => PS/XT  key code => ADB key code

I do admit I'm not fully sure how the new API is suppose to work. 

For a Macintosh host and guest it probably should work like this:
Macintosh host key code => sent directly to guest OS

For a Macintosh host and a PC guest, it probably should work like this:
Macintosh host key code => PS/2 key code (not PS/XT)

For a PC host and a PC guest, it probably should work like this:
PC host key code => sent directly to guest OS

For a PC host and a Macintosh guest, it might work like this:
PC host key code (PS/2) => ADB key code

The above shouldn't be hard to do. Code would need to be added
to the cocoa.m file to detect the currently used emulator. 

Host key code => QKeyCode => guest key code 
I would like to avoid this translation because it would be relatively slow.
It would be as inefficient as what we have now. 

> My apologies for this review being so delayed; I'm now
> trying to process my queue of OSX to-review patches.

Five months is a long time, but it is way better than never.


reply via email to

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