On Mon, Jun 13, 2011 at 07:17:04PM -0300, Lucas Zawacki wrote: > OK, so here is my second try at some patches. These mostly implement > keyboard action mapping and there's plenty of tests to go together > with it. I believe the keyboard part is pretty much done, as is > SetActionMap. Of course I'm ignoring the username strings and all the > device ownership part, I'll leave that for later. > > As before I'll leave the patches here to get some feedback before I > try to commit.
Looks good to me. I spotted one small flaw in binary logic: > +/* This is used for the action mapping of constants such as DIKEYBOARD_SPACE > */ > +static DWORD keyboard_semantic_to_obj_id(DWORD dwSemantic) > +{ > + /* dwSemantic=810004df is dwObjID=0xdf04 */ > + return 0x0000ffff & ( (dwSemantic << 8) | (dwSemantic >> 8) ); > +} The >>8 shift will drag in bits 16-23 from dwSemantic, which is probably not intended. (think dwSemantic = 0x4242df04 , it will roate in the 0x42) dwSemantic &= 0x0000ffff; before the operation will help. If no negative comments appear, please post them as 1 patch per email to wine-patches ;) Ciao, Marcus