diff --git a/src/rime/context.cc b/src/rime/context.cc index 905ced34e..0ecd71b2a 100644 --- a/src/rime/context.cc +++ b/src/rime/context.cc @@ -292,4 +292,4 @@ void Context::ClearTransientOptions() { } } -} // namespace rime +} // namespace rime \ No newline at end of file diff --git a/src/rime/context.h b/src/rime/context.h index 58ea39aa5..f66d2e926 100644 --- a/src/rime/context.h +++ b/src/rime/context.h @@ -110,4 +110,4 @@ class Context { } // namespace rime -#endif // RIME_CONTEXT_H_ +#endif // RIME_CONTEXT_H_ \ No newline at end of file diff --git a/src/rime/dict/table.h b/src/rime/dict/table.h index ea87d92eb..7db616eff 100644 --- a/src/rime/dict/table.h +++ b/src/rime/dict/table.h @@ -186,4 +186,4 @@ class Table : public MappedFile { } // namespace rime -#endif // RIME_TABLE_H_ +#endif // RIME_TABLE_H_ \ No newline at end of file diff --git a/src/rime/gear/ascii_composer.cc b/src/rime/gear/ascii_composer.cc index bba38a035..bc7880175 100644 --- a/src/rime/gear/ascii_composer.cc +++ b/src/rime/gear/ascii_composer.cc @@ -81,9 +81,10 @@ ProcessResult AsciiComposer::ProcessKeyEvent(const KeyEvent& key_event) { if (is_shift || is_ctrl) { if (key_event.release()) { if (shift_key_pressed_ || ctrl_key_pressed_) { - auto now = std::chrono::steady_clock::now(); - if (now < toggle_expired_) { - ToggleAsciiModeWithKey(ch); + if (!key_event.ignored()) { + auto now = std::chrono::steady_clock::now(); + if (now < toggle_expired_) + ToggleAsciiModeWithKey(ch); } shift_key_pressed_ = ctrl_key_pressed_ = false; return kNoop; diff --git a/src/rime/key_event.h b/src/rime/key_event.h index 22e48ae01..84bd58930 100644 --- a/src/rime/key_event.h +++ b/src/rime/key_event.h @@ -31,6 +31,7 @@ class KeyEvent { bool alt() const { return (modifier_ & kAltMask) != 0; } bool caps() const { return (modifier_ & kLockMask) != 0; } bool super() const { return (modifier_ & kSuperMask) != 0; } + bool ignored() const { return (modifier_ & kIgnoredMask) != 0; } bool release() const { return (modifier_ & kReleaseMask) != 0; } // 按鍵表示為形如「狀態+鍵名」的文字 // 若無鍵名,則以四位或六位十六进制数形式的文字來標識 diff --git a/test/table_test.cc b/test/table_test.cc index d78e02d65..61cc4222f 100644 --- a/test/table_test.cc +++ b/test/table_test.cc @@ -8,7 +8,6 @@ #include #include - class RimeTableTest : public ::testing::Test { public: virtual void SetUp() { @@ -23,9 +22,8 @@ class RimeTableTest : public ::testing::Test { } table_->Load(); } - virtual void TearDown() { - table_->Close(); - } + virtual void TearDown() { table_->Close(); } + protected: static const int total_num_entries = 8; static const char file_name[]; @@ -92,7 +90,7 @@ void RimeTableTest::PrepareSampleVocabulary(rime::Syllabary& syll, d->code.resize(3); d->code.push_back(2); d->code.push_back(1); - d->text = "yi-er-san-er-yi"; + d->text = "yi-er-san-er-yi"; (*lv4)[-1].entries.push_back(d); }