(keyEvent, isUp = False)
| 328 | return result |
| 329 | |
| 330 | def translateModifiers(keyEvent, isUp = False): |
| 331 | result = 0 |
| 332 | keyCode = keyEvent.keyCode |
| 333 | if keyCode != VK_SHIFT and keyEvent.isKeyDown(VK_SHIFT): |
| 334 | result |= SHIFT_MASK |
| 335 | if keyEvent.isKeyToggled(VK_CAPITAL): |
| 336 | result |= LOCK_MASK |
| 337 | if keyCode != VK_CONTROL and keyEvent.isKeyDown(VK_CONTROL): |
| 338 | result |= CONTROL_MASK |
| 339 | if keyCode != VK_MENU and keyEvent.isKeyDown(VK_MENU): |
| 340 | result |= ALT_MASK |
| 341 | if isUp: |
| 342 | result |= RELEASE_MASK |
| 343 | if keyCode == VK_CAPITAL and not isUp: |
| 344 | # NOTE: rime assumes XK_Caps_Lock to be sent before modifier changes, |
| 345 | # while VK_CAPITAL has the modifier changed already. |
| 346 | # so it is necessary to revert LOCK_MASK |
| 347 | result ^= LOCK_MASK |
| 348 | return result |
no test coverage detected