From 3fc56c4693fb84f66cd0b5d8e348af39f5a89f0e Mon Sep 17 00:00:00 2001 From: Chen Gong Date: Sun, 23 Aug 2020 20:35:06 +0800 Subject: [PATCH] fix(ascii_composer): first read ascii_composer/good_old_caps_lock from schema config --- src/rime/gear/ascii_composer.cc | 34 ++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/rime/gear/ascii_composer.cc b/src/rime/gear/ascii_composer.cc index e7bdfd459..d142ea050 100644 --- a/src/rime/gear/ascii_composer.cc +++ b/src/rime/gear/ascii_composer.cc @@ -177,26 +177,26 @@ void AsciiComposer::LoadConfig(Schema* schema) { good_old_caps_lock_ = false; if (!schema) return; - the preset_config( - Config::Require("config")->Create("default")); - if (preset_config) { - preset_config->GetBool("ascii_composer/good_old_caps_lock", - &good_old_caps_lock_); - } Config* config = schema->config(); - auto bindings = config->GetMap("ascii_composer/switch_key"); - if (!bindings) { - if (!preset_config) { - LOG(ERROR) << "Error importing preset ascii bindings."; - return; - } - bindings = preset_config->GetMap("ascii_composer/switch_key"); - if (!bindings) { - LOG(WARNING) << "missing preset ascii bindings."; - return; + the preset_config(Config::Require("config")->Create("default")); + if (!config->GetBool("ascii_composer/good_old_caps_lock", + &good_old_caps_lock_)) { + if (preset_config) { + preset_config->GetBool("ascii_composer/good_old_caps_lock", + &good_old_caps_lock_); } } - load_bindings(bindings, &bindings_); + if (auto bindings = config->GetMap("ascii_composer/switch_key")) { + load_bindings(bindings, &bindings_); + } + else if (auto bindings = preset_config + ? preset_config->GetMap("ascii_composer/switch_key") + : nullptr) { + load_bindings(bindings, &bindings_); + } else { + LOG(ERROR) << "Missing ascii bindings."; + return; + } auto it = bindings_.find(XK_Caps_Lock); if (it != bindings_.end()) { caps_lock_switch_style_ = it->second;