(self, cbTS, keyEvent)
| 2326 | |
| 2327 | |
| 2328 | def onKeyUp(self, cbTS, keyEvent): |
| 2329 | charCode = keyEvent.charCode |
| 2330 | keyCode = keyEvent.keyCode |
| 2331 | cbTS.lastKeyDownCode = 0 |
| 2332 | cbTS.lastKeyDownTime = 0.0 |
| 2333 | |
| 2334 | # 若放開 Shift 鍵,且觸發中英文切換 |
| 2335 | if cbTS.isLangModeChanged and keyCode == VK_SHIFT: |
| 2336 | self.toggleLanguageMode(cbTS) # 切換中英文模式 |
| 2337 | cbTS.isLangModeChanged = False |
| 2338 | cbTS.showmenu = False |
| 2339 | cbTS.multifunctionmode = False |
| 2340 | if not cbTS.hidePromptMessages and not cbTS.client.isUiLess: |
| 2341 | message = '中文模式' if cbTS.langMode == CHINESE_MODE else '英數模式' |
| 2342 | cbTS.isShowMessage = True |
| 2343 | cbTS.showMessage(message, cbTS.messageDurationTime) |
| 2344 | if cbTS.showCandidates or len(cbTS.compositionChar) > 0 or len(cbTS.compositionBufferString) > 0: |
| 2345 | if cbTS.compositionBufferMode and not cbTS.selcandmode: |
| 2346 | RemoveStringLength = self.calcRemoveStringLength(cbTS) |
| 2347 | self.removeCompositionBufferString(cbTS, RemoveStringLength, True) |
| 2348 | self.resetComposition(cbTS) |
| 2349 | |
| 2350 | # 若放開 CapsLock 鍵 |
| 2351 | if keyEvent.keyCode == VK_CAPITAL: |
| 2352 | self.updateLangButtons(cbTS) |
| 2353 | |
| 2354 | if cbTS.isShapeModeChanged: |
| 2355 | cbTS.isShapeModeChanged = False |
| 2356 | if not cbTS.hidePromptMessages and not cbTS.client.isUiLess: |
| 2357 | message = '半形模式' if cbTS.shapeMode == HALFSHAPE_MODE else '全形模式' |
| 2358 | cbTS.isShowMessage = True |
| 2359 | cbTS.showMessage(message, cbTS.messageDurationTime) |
| 2360 | if cbTS.showCandidates or len(cbTS.compositionChar) > 0: |
| 2361 | if cbTS.compositionBufferMode and not cbTS.selcandmode: |
| 2362 | RemoveStringLength = self.calcRemoveStringLength(cbTS) |
| 2363 | self.removeCompositionBufferString(cbTS, RemoveStringLength, True) |
| 2364 | self.resetComposition(cbTS) |
| 2365 | |
| 2366 | if cbTS.isSelKeysChanged: |
| 2367 | cbTS.setCandidateList(cbTS.candidateList) |
| 2368 | if cbTS.isShowCandidates: |
| 2369 | cbTS.setShowCandidates(True) |
| 2370 | cbTS.isSelKeysChanged = False |
| 2371 | |
| 2372 | if cbTS.showPhrase and cbTS.phrasemode and cbTS.isShowPhraseCandidates: |
| 2373 | cbTS.setShowCandidates(True) |
| 2374 | |
| 2375 | if cbTS.showMessageOnKeyUp: |
| 2376 | if not cbTS.onKeyUpMessage == "" and not cbTS.client.isUiLess: |
| 2377 | cbTS.showMessage(cbTS.onKeyUpMessage, cbTS.messageDurationTime) |
| 2378 | cbTS.showMessageOnKeyUp = False |
| 2379 | cbTS.onKeyUpMessage = "" |
| 2380 | |
| 2381 | if cbTS.hideMessageOnKeyUp: |
| 2382 | cbTS.hideMessage() |
| 2383 | cbTS.isShowMessage = False |
| 2384 | cbTS.hideMessageOnKeyUp = False |
| 2385 |
nothing calls this directly
no test coverage detected