| 176 | } |
| 177 | |
| 178 | void handleKeyUp(int keyCode) { |
| 179 | KeyState& currentKeyInfo = KeyInfo[keyCode]; |
| 180 | GroupState& currentGroupInfo = GroupInfo[currentKeyInfo.group]; |
| 181 | if (currentGroupInfo.previousKey == keyCode && !currentKeyInfo.keyDown) { |
| 182 | currentGroupInfo.previousKey = 0; |
| 183 | } |
| 184 | if (currentKeyInfo.keyDown) { |
| 185 | currentKeyInfo.keyDown = false; |
| 186 | if (currentGroupInfo.activeKey == keyCode && currentGroupInfo.previousKey != 0) { |
| 187 | SendKey(keyCode, false); |
| 188 | currentGroupInfo.activeKey = currentGroupInfo.previousKey; |
| 189 | currentGroupInfo.previousKey = 0; |
| 190 | SendKey(currentGroupInfo.activeKey, true); |
| 191 | } else { |
| 192 | currentGroupInfo.previousKey = 0; |
| 193 | if (currentGroupInfo.activeKey == keyCode) currentGroupInfo.activeKey = 0; |
| 194 | SendKey(keyCode, false); |
| 195 | } |
| 196 | } |
| 197 | } |
| 198 | |
| 199 | bool isSimulatedKeyEvent(DWORD flags) { return flags & 0x10; } |
| 200 |
no test coverage detected