Description:
1: When moving from a secondary to the primary using the right shift key (seamless+shift mode), when i release my shift , and type anywhere , it will be capitals..
(when you press your left shift once it's back to normal)
2 :Also , games and programs distinguishing between left and right shift on the secondary always trigger on a left shift keypress, iven if you press the right one.
Why:
The primary instance of multiplicity makes no difference between the 0xA0 or 0xA1 Virtual key value (probably reading shift from 0x10 but i have no idea) , i just know for a fact , whichever shift key i press , the primary instance of multiplicity sends :
4d 55 4c 7e 01 01 00 00 00 a0 00 2a 00 02 00 00 MUL~.... ...*....
00 00 00 00 00 00 00 00 00 d5 3f 11 00 dc 99 89 ........ ..?.....
00 a0 00 2a 00 02 00 00 00 00 00 00 00 34 12 00 ...*.... .....4..
A0 every time ..
The effect is , while moving from sec to pri holding rshift the vkey map gets syncronized , and the value (being keydown) for A0 gets passed to the primary , however , windows on the primary knows it's A1 thats pressed , so you end up with A1 and A0 being in a keydown position , if you then remove your finger from the right shift , the keydown value from the sync is still toggled on your left shift.
Solution:
When sending key data to the secondary from the primary :
Either reading 0xA0 & 0xA1 separately, not using 0x10 on virtual , (i don't know what kind of routine stardock uses to read keys )
Or , when multiplicity is reading Scan values , read 0x36 and 0x2A separately.
Whichever way it's read on the primary , A0 should be sent for left shift and A1 for the right one. That should fix it.
Kind regards