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