summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Config.cc16
-rw-r--r--src/Config.h2
-rw-r--r--src/DoublePinyinEditor.cc3
3 files changed, 20 insertions, 1 deletions
diff --git a/src/Config.cc b/src/Config.cc
index bbbd2b7..622d134 100644
--- a/src/Config.cc
+++ b/src/Config.cc
@@ -16,6 +16,7 @@ gboolean Config::m_auto_commit = FALSE;
gboolean Config::m_double_pinyin = FALSE;
gint Config::m_double_pinyin_schema = 0;
+gboolean Config::m_double_pinyin_show_raw = FALSE;
gboolean Config::m_init_chinese = TRUE;
gboolean Config::m_init_full = FALSE;
@@ -36,6 +37,7 @@ static const StaticString auto_commit ("AutoCommit");
static const StaticString double_pinyin ("DoublePinyin");
static const StaticString double_pinyin_schema ("DoublePinyinSchema");
+static const StaticString double_pinyin_show_raw ("DoublePinyinShowRaw");
static const StaticString init_chinese ("InitChinese");
static const StaticString init_full ("InitFull");
@@ -91,6 +93,11 @@ Config::readDefaultValues (void)
/* double pinyin */
m_double_pinyin = read (engine_pinyin, double_pinyin, false);
m_double_pinyin_schema = read (engine_pinyin, double_pinyin_schema, 0);
+ if (m_double_pinyin_schema >= 5) {
+ m_double_pinyin_schema = 0;
+ g_warn_if_reached ();
+ }
+ m_double_pinyin_show_raw = read (engine_pinyin, double_pinyin_show_raw, false);
/* init states */
m_init_chinese = read (engine_pinyin, init_chinese, true);
@@ -189,8 +196,15 @@ Config::valueChangedCallback (IBusConfig *config,
/* double pinyin */
if (double_pinyin == name)
m_double_pinyin = normalizeGValue (value, false);
- else if (double_pinyin_schema == name)
+ else if (double_pinyin_schema == name) {
m_double_pinyin_schema = normalizeGValue (value, 0);
+ if (m_double_pinyin_schema >= 5) {
+ m_double_pinyin_schema = 0;
+ g_warn_if_reached ();
+ }
+ }
+ else if (double_pinyin_show_raw == name)
+ m_double_pinyin_show_raw = normalizeGValue (value, false);
/* init states */
else if (init_chinese == name)
m_init_chinese = normalizeGValue (value, true);
diff --git a/src/Config.h b/src/Config.h
index cbacae1..5d0f83b 100644
--- a/src/Config.h
+++ b/src/Config.h
@@ -25,6 +25,7 @@ public:
static gboolean autoCommit (void) { return m_auto_commit; }
static gboolean doublePinyin (void) { return m_double_pinyin; }
static gint doublePinyinSchema (void) { return m_double_pinyin_schema; }
+ static gboolean doublePinyinShowRaw (void) { return m_double_pinyin_show_raw; }
static gboolean initChinese (void) { return m_init_chinese; }
static gboolean initFull (void) { return m_init_full; }
static gboolean initFullPunct (void) { return m_init_full_punct; }
@@ -57,6 +58,7 @@ private:
static gboolean m_double_pinyin;
static gint m_double_pinyin_schema;
+ static gboolean m_double_pinyin_show_raw;
static gboolean m_init_chinese;
static gboolean m_init_full;
diff --git a/src/DoublePinyinEditor.cc b/src/DoublePinyinEditor.cc
index e0a1c48..1843c3f 100644
--- a/src/DoublePinyinEditor.cc
+++ b/src/DoublePinyinEditor.cc
@@ -355,6 +355,9 @@ DoublePinyinEditor::updatePinyin (gboolean all)
void
DoublePinyinEditor::updateAuxiliaryTextAfter (String &buffer)
{
+ if (G_LIKELY (!Config::doublePinyinShowRaw ()))
+ return;
+
if (G_LIKELY (Config::orientation () == IBUS_ORIENTATION_HORIZONTAL)) {
buffer << " [ ";
}