diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Config.cc | 16 | ||||
| -rw-r--r-- | src/Config.h | 2 | ||||
| -rw-r--r-- | src/DoublePinyinEditor.cc | 3 |
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 << " [ "; } |
