Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1817)

Unified Diff: trunk/src/chrome/browser/chromeos/input_method/input_method_manager_impl.cc

Issue 167823002: Revert 251327 "Reland of: Split out InputMethodMenuManager from ..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: trunk/src/chrome/browser/chromeos/input_method/input_method_manager_impl.cc
===================================================================
--- trunk/src/chrome/browser/chromeos/input_method/input_method_manager_impl.cc (revision 251433)
+++ trunk/src/chrome/browser/chromeos/input_method/input_method_manager_impl.cc (working copy)
@@ -6,8 +6,6 @@
#include <algorithm> // std::find
-#include "ash/ime/input_method_menu_item.h"
-#include "ash/ime/input_method_menu_manager.h"
#include "base/basictypes.h"
#include "base/bind.h"
#include "base/location.h"
@@ -352,11 +350,8 @@
// extension IMEs via InputMethodEngine::(Set|Update)MenuItems.
// If the current input method is a keyboard layout, empty
// properties are sufficient.
- const ash::ime::InputMethodMenuItemList empty_menu_item_list;
- ash::ime::InputMethodMenuManager* input_method_menu_manager =
- ash::ime::InputMethodMenuManager::GetInstance();
- input_method_menu_manager->SetCurrentInputMethodMenuItemList(
- empty_menu_item_list);
+ const InputMethodPropertyList empty_property_list;
+ SetCurrentInputMethodProperties(empty_property_list);
const InputMethodDescriptor* descriptor = NULL;
if (extension_ime_util::IsExtensionIME(input_method_id_to_switch)) {
@@ -424,20 +419,21 @@
}
}
-void InputMethodManagerImpl::ActivateInputMethodMenuItem(
+void InputMethodManagerImpl::ActivateInputMethodProperty(
const std::string& key) {
DCHECK(!key.empty());
- if (ash::ime::InputMethodMenuManager::GetInstance()->
- HasInputMethodMenuItemForKey(key)) {
- IMEEngineHandlerInterface* engine =
- IMEBridge::Get()->GetCurrentEngineHandler();
- if (engine)
- engine->PropertyActivate(key);
- return;
+ for (size_t i = 0; i < property_list_.size(); ++i) {
+ if (property_list_[i].key == key) {
+ IMEEngineHandlerInterface* engine =
+ IMEBridge::Get()->GetCurrentEngineHandler();
+ if (engine)
+ engine->PropertyActivate(key);
+ return;
+ }
}
- DVLOG(1) << "ActivateInputMethodMenuItem: unknown key: " << key;
+ DVLOG(1) << "ActivateInputMethodProperty: unknown key: " << key;
}
void InputMethodManagerImpl::AddInputMethodExtension(
@@ -691,6 +687,21 @@
return current_input_method_;
}
+InputMethodPropertyList
+InputMethodManagerImpl::GetCurrentInputMethodProperties() const {
+ // This check is necessary since an IME property (e.g. for Pinyin) might be
+ // sent from ibus-daemon AFTER the current input method is switched to XKB.
+ if (InputMethodUtil::IsKeyboardLayout(GetCurrentInputMethod().id()))
+ return InputMethodPropertyList(); // Empty list.
+ return property_list_;
+}
+
+void InputMethodManagerImpl::SetCurrentInputMethodProperties(
+ const InputMethodPropertyList& property_list) {
+ property_list_ = property_list;
+ PropertyChanged();
+}
+
XKeyboard* InputMethodManagerImpl::GetXKeyboard() {
return xkeyboard_.get();
}
@@ -746,6 +757,12 @@
OnComponentExtensionInitialized(delegate.Pass());
}
+void InputMethodManagerImpl::PropertyChanged() {
+ FOR_EACH_OBSERVER(InputMethodManager::Observer,
+ observers_,
+ InputMethodPropertyChanged(this));
+}
+
void InputMethodManagerImpl::CandidateClicked(int index) {
IMEEngineHandlerInterface* engine =
IMEBridge::Get()->GetCurrentEngineHandler();

Powered by Google App Engine
This is Rietveld 408576698