summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2022-02-15 10:44:23 +0800
committerPeng Wu <alexepico@gmail.com>2022-02-15 10:44:23 +0800
commitd9ec5ae7aa0dc69c437aaaa0d686d5a2faaec826 (patch)
treebd303681053953af61d1567e18f3e6108c3735db
parent6cd62db2c298597a8ed77a0f21994839880ed320 (diff)
downloadibus-libpinyin-english-mode.tar.gz
ibus-libpinyin-english-mode.tar.xz
ibus-libpinyin-english-mode.zip
Enable English mode for Full Pinyinenglish-mode
-rw-r--r--src/PYEnglishDatabase.cc2
-rw-r--r--src/PYPPinyinEngine.cc11
2 files changed, 12 insertions, 1 deletions
diff --git a/src/PYEnglishDatabase.cc b/src/PYEnglishDatabase.cc
index a55ade6..6937fa3 100644
--- a/src/PYEnglishDatabase.cc
+++ b/src/PYEnglishDatabase.cc
@@ -221,7 +221,7 @@ EnglishDatabase::listWords(const char *prefix, std::vector<std::string> & words)
const char *SQL_DB_LIST =
"SELECT word FROM ( "
"SELECT * FROM english UNION ALL SELECT * FROM userdb.english) "
- " WHERE word LIKE \"%s%\" GROUP BY word ORDER BY SUM(freq) DESC;";
+ " WHERE word GLOB \"%s*\" GROUP BY word ORDER BY SUM(freq) DESC;";
m_sql.printf (SQL_DB_LIST, prefix);
int result = sqlite3_prepare_v2 (m_sqlite, m_sql.c_str(), -1, &stmt, &tail);
if (result != SQLITE_OK)
diff --git a/src/PYPPinyinEngine.cc b/src/PYPPinyinEngine.cc
index 20e46cd..d1250f1 100644
--- a/src/PYPPinyinEngine.cc
+++ b/src/PYPPinyinEngine.cc
@@ -352,6 +352,17 @@ PinyinEngine::processKeyEvent (guint keyval, guint keycode, guint modifiers)
break;
#endif
}
+
+#ifdef IBUS_BUILD_ENGLISH_INPUT_MODE
+ // for full pinyin
+ if ((IBUS_A <= keyval && keyval<= IBUS_Z) &&
+ PinyinConfig::instance ().englishInputMode () &&
+ !PinyinConfig::instance ().doublePinyin ()) {
+ m_input_mode = MODE_ENGLISH;
+ m_editors[m_input_mode]->setText ("v", 1);
+ }
+#endif
+
} else {
/* TODO: Unknown */
}