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

Unified Diff: ui/views/ime/input_method_bridge.cc

Issue 8576005: IME (input method editor) support for Aura, part 3 of 3: Use ui::InputMethod in ash. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review fixes Created 9 years 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: ui/views/ime/input_method_bridge.cc
diff --git a/ui/views/ime/input_method_bridge.cc b/ui/views/ime/input_method_bridge.cc
index 1ca16315a4e874a138a8fdb1a8b6979e982212bd..eef4c12ea4e788f1def3556c208685396bbd81cd 100644
--- a/ui/views/ime/input_method_bridge.cc
+++ b/ui/views/ime/input_method_bridge.cc
@@ -15,12 +15,11 @@ InputMethodBridge::InputMethodBridge(internal::InputMethodDelegate* delegate,
ui::InputMethod* host)
: host_(host),
context_focused_(false) {
- DCHECK(host_);
set_delegate(delegate);
}
InputMethodBridge::~InputMethodBridge() {
- if (host_->GetTextInputClient() == this)
+ if (host_ && host_->GetTextInputClient() == this)
Ben Goodger (Google) 2011/12/20 21:02:02 so, if host_ is set in the ctor, and, per your doc
Yusuke Sato 2011/12/21 16:57:27 For Chrome with the aura_shell, the checks are not
host_->SetFocusedTextInputClient(NULL);
}
@@ -29,12 +28,16 @@ void InputMethodBridge::Init(Widget* widget) {
}
void InputMethodBridge::OnFocus() {
- DCHECK(!widget_focused());
+ // Disabling the DCHECK for now since views_unittests seems to call
+ // views::InputMethod::OnFocus and OnBlur in a wrong way.
+ // TODO(yusukes): Reenable it once views_unittests are fixed.
+ // DCHECK(!widget_focused());
InputMethodBase::OnFocus();
// Ask the system-wide IME to send all TextInputClient messages to |this|
// object.
- host_->SetFocusedTextInputClient(this);
+ if (host_)
+ host_->SetFocusedTextInputClient(this);
// TODO(yusukes): We don't need to call OnTextInputTypeChanged() once we move
// text input type tracker code to ui::InputMethodBase.
@@ -43,11 +46,12 @@ void InputMethodBridge::OnFocus() {
}
void InputMethodBridge::OnBlur() {
- DCHECK(widget_focused());
+ // TODO(yusukes): Reenable it once views_unittests are fixed.
+ // DCHECK(widget_focused());
ConfirmCompositionText();
InputMethodBase::OnBlur();
- if (host_->GetTextInputClient() == this)
+ if (host_ && host_->GetTextInputClient() == this)
host_->SetFocusedTextInputClient(NULL);
}
@@ -61,31 +65,31 @@ void InputMethodBridge::DispatchKeyEvent(const KeyEvent& key) {
}
void InputMethodBridge::OnTextInputTypeChanged(View* view) {
- if (IsViewFocused(view))
+ if (host_ && IsViewFocused(view))
host_->OnTextInputTypeChanged(this);
InputMethodBase::OnTextInputTypeChanged(view);
}
void InputMethodBridge::OnCaretBoundsChanged(View* view) {
- if (IsViewFocused(view) && !IsTextInputTypeNone())
+ if (host_ && IsViewFocused(view) && !IsTextInputTypeNone())
host_->OnCaretBoundsChanged(this);
}
void InputMethodBridge::CancelComposition(View* view) {
- if (IsViewFocused(view))
+ if (host_ && IsViewFocused(view))
host_->CancelComposition(this);
}
std::string InputMethodBridge::GetInputLocale() {
- return host_->GetInputLocale();
+ return host_ ? host_->GetInputLocale() : "";
}
base::i18n::TextDirection InputMethodBridge::GetInputTextDirection() {
- return host_->GetInputTextDirection();
+ return host_ ? host_->GetInputTextDirection() : base::i18n::UNKNOWN_DIRECTION;
}
bool InputMethodBridge::IsActive() {
- return host_->IsActive();
+ return host_ ? host_->IsActive() : false;
}
// Overridden from TextInputClient. Forward an event from the system-wide IME

Powered by Google App Engine
This is Rietveld 408576698