Skip to content

Commit

Permalink
Merge pull request #228 from chewing/feat-show-chieng-mode-capslock
Browse files Browse the repository at this point in the history
feat: show chi/eng mode toast after toggle capslock
  • Loading branch information
kanru authored Dec 21, 2024
2 parents 03cb8ca + b79859c commit 25a9f23
Showing 1 changed file with 20 additions and 1 deletion.
21 changes: 20 additions & 1 deletion ChewingTextService/ChewingTextService.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -466,14 +466,19 @@ bool TextService::onKeyDown(Ime::KeyEvent& keyEvent, Ime::EditSession* session)

// virtual
bool TextService::filterKeyUp(Ime::KeyEvent& keyEvent) {
if(config().switchLangWithShift) {
if (config().switchLangWithShift) {
if (lastKeyDownCode_ == VK_SHIFT && keyEvent.keyCode() == VK_SHIFT) {
// last key down event is also shift key
// a <Shift> key down + key up pair was detected
// switch language
return true;
}
}
if (config().enableCapsLock) {
if (lastKeyDownCode_ == VK_CAPITAL && keyEvent.keyCode() == VK_CAPITAL && langMode_ == CHINESE_MODE) {
return true;
}
}
lastKeyDownCode_ = 0;
return false;
}
Expand All @@ -486,6 +491,20 @@ bool TextService::onKeyUp(Ime::KeyEvent& keyEvent, Ime::EditSession* session) {
std::wstring msg;
if (chewing_get_ChiEngMode(chewingContext_) == SYMBOL_MODE) {
msg += L"英數模式";
} else {
msg += L"中文模式";
if (config().enableCapsLock && keyEvent.isKeyToggled(VK_CAPITAL)) {
msg = L"英數模式 (CapsLock)";
}
}
showMessage(session, msg, 2);
}
}
if (config().enableCapsLock) {
if (lastKeyDownCode_ == VK_CAPITAL && keyEvent.keyCode() == VK_CAPITAL && langMode_ == CHINESE_MODE) {
std::wstring msg;
if (keyEvent.isKeyToggled(VK_CAPITAL)) {
msg += L"英數模式 (CapsLock)";
} else {
msg += L"中文模式";
}
Expand Down

0 comments on commit 25a9f23

Please sign in to comment.