| Index: chromeos/ime/component_extension_ime_manager.cc
|
| diff --git a/chromeos/ime/component_extension_ime_manager.cc b/chromeos/ime/component_extension_ime_manager.cc
|
| index 3037326346bc5fd82b4e6b8e86efcae556505206..a5826cde52d90cdaa251616deff399b2e41ed42b 100644
|
| --- a/chromeos/ime/component_extension_ime_manager.cc
|
| +++ b/chromeos/ime/component_extension_ime_manager.cc
|
| @@ -76,7 +76,7 @@ ComponentExtensionIMEManagerDelegate::~ComponentExtensionIMEManagerDelegate() {
|
| }
|
|
|
| ComponentExtensionIMEManager::ComponentExtensionIMEManager()
|
| - : is_initialized_(false) {
|
| + : is_initialized_(false), was_initialization_notified_(false) {
|
| for (size_t i = 0; i < arraysize(kLoginLayoutWhitelist); ++i) {
|
| login_layout_set_.insert(kLoginLayoutWhitelist[i]);
|
| }
|
| @@ -90,7 +90,14 @@ void ComponentExtensionIMEManager::Initialize(
|
| delegate_ = delegate.Pass();
|
| component_extension_imes_ = delegate_->ListIME();
|
| is_initialized_ = true;
|
| - FOR_EACH_OBSERVER(Observer, observers_, OnInitialized());
|
| +}
|
| +
|
| +void ComponentExtensionIMEManager::NotifyInitialized() {
|
| + if (is_initialized_ && !was_initialization_notified_) {
|
| + FOR_EACH_OBSERVER(
|
| + Observer, observers_, OnImeComponentExtensionInitialized());
|
| + was_initialization_notified_ = true;
|
| + }
|
| }
|
|
|
| bool ComponentExtensionIMEManager::IsInitialized() {
|
| @@ -203,6 +210,18 @@ input_method::InputMethodDescriptors
|
| return result;
|
| }
|
|
|
| +input_method::InputMethodDescriptors
|
| + ComponentExtensionIMEManager::GetXkbIMEAsInputMethodDescriptor() {
|
| + input_method::InputMethodDescriptors result;
|
| + const input_method::InputMethodDescriptors& descriptors =
|
| + GetAllIMEAsInputMethodDescriptor();
|
| + for (size_t i = 0; i < descriptors.size(); ++i) {
|
| + if (extension_ime_util::IsKeyboardLayoutExtension(descriptors[i].id()))
|
| + result.push_back(descriptors[i]);
|
| + }
|
| + return result;
|
| +}
|
| +
|
| void ComponentExtensionIMEManager::AddObserver(Observer* observer) {
|
| observers_.AddObserver(observer);
|
| }
|
|
|