Index: content/browser/renderer_host/render_widget_host_view_win.cc |
diff --git a/content/browser/renderer_host/render_widget_host_view_win.cc b/content/browser/renderer_host/render_widget_host_view_win.cc |
index 563ea65a85f6b9eb554e26b4f564eaf73cfa6637..d18af60da8daaa169327d6aedd37be60ef8196b4 100644 |
--- a/content/browser/renderer_host/render_widget_host_view_win.cc |
+++ b/content/browser/renderer_host/render_widget_host_view_win.cc |
@@ -391,6 +391,7 @@ RenderWidgetHostViewWin::RenderWidgetHostViewWin(RenderWidgetHost* widget) |
compositor_host_window_(NULL), |
hide_compositor_window_at_next_paint_(false), |
track_mouse_leave_(false), |
+ imm32_manager_(new ui::IMM32Manager), |
ime_notification_(false), |
capture_enter_key_(false), |
is_hidden_(false), |
@@ -707,7 +708,7 @@ void RenderWidgetHostViewWin::SelectionBoundsChanged( |
// Only update caret position if the input method is enabled. |
if (is_enabled) { |
caret_rect_ = gfx::UnionRects(params.anchor_rect, params.focus_rect); |
- imm32_manager_.UpdateCaretRect(m_hWnd, caret_rect_); |
+ imm32_manager_->UpdateCaretRect(m_hWnd, caret_rect_); |
} |
} |
@@ -715,7 +716,7 @@ void RenderWidgetHostViewWin::ScrollOffsetChanged() { |
} |
void RenderWidgetHostViewWin::ImeCancelComposition() { |
- imm32_manager_.CancelIME(m_hWnd); |
+ imm32_manager_->CancelIME(m_hWnd); |
} |
void RenderWidgetHostViewWin::ImeCompositionRangeChanged( |
@@ -1535,7 +1536,7 @@ void RenderWidgetHostViewWin::OnInputLangChange(DWORD character_set, |
// 1 Sending a request only if ime_status_ != ime_notification_, and; |
// 2 Copying ime_status to ime_notification_ if it sends the request |
// successfully (because Action 1 shows ime_status = !ime_notification_.) |
- bool ime_status = imm32_manager_.SetInputLanguage(); |
+ bool ime_status = imm32_manager_->SetInputLanguage(); |
if (ime_status != ime_notification_) { |
if (render_widget_host_) { |
render_widget_host_->SetInputMethodActive(ime_status); |
@@ -1607,10 +1608,10 @@ LRESULT RenderWidgetHostViewWin::OnImeSetContext( |
} |
if (ime_notification_) |
- imm32_manager_.CreateImeWindow(m_hWnd); |
+ imm32_manager_->CreateImeWindow(m_hWnd); |
- imm32_manager_.CleanupComposition(m_hWnd); |
- return imm32_manager_.SetImeWindowStyle( |
+ imm32_manager_->CleanupComposition(m_hWnd); |
+ return imm32_manager_->SetImeWindowStyle( |
m_hWnd, message, wparam, lparam, &handled); |
} |
@@ -1621,8 +1622,8 @@ LRESULT RenderWidgetHostViewWin::OnImeStartComposition( |
return 0; |
// Reset the composition status and create IME windows. |
- imm32_manager_.CreateImeWindow(m_hWnd); |
- imm32_manager_.ResetComposition(m_hWnd); |
+ imm32_manager_->CreateImeWindow(m_hWnd); |
+ imm32_manager_->ResetComposition(m_hWnd); |
// When the focus is on an element that does not draw composition by itself |
// (i.e., PPAPI plugin not handling IME), let IME to draw the text. Otherwise |
// we have to prevent WTL from calling ::DefWindowProc() because the function |
@@ -1639,7 +1640,7 @@ LRESULT RenderWidgetHostViewWin::OnImeComposition( |
return 0; |
// At first, update the position of the IME window. |
- imm32_manager_.UpdateImeWindow(m_hWnd); |
+ imm32_manager_->UpdateImeWindow(m_hWnd); |
// ui::CompositionUnderline should be identical to |
// WebKit::WebCompositionUnderline, so that we can do reinterpret_cast safely. |
@@ -1650,10 +1651,10 @@ LRESULT RenderWidgetHostViewWin::OnImeComposition( |
// Retrieve the result string and its attributes of the ongoing composition |
// and send it to a renderer process. |
ui::CompositionText composition; |
- if (imm32_manager_.GetResult(m_hWnd, lparam, &composition.text)) { |
+ if (imm32_manager_->GetResult(m_hWnd, lparam, &composition.text)) { |
render_widget_host_->ImeConfirmComposition( |
composition.text, ui::Range::InvalidRange(), false); |
- imm32_manager_.ResetComposition(m_hWnd); |
+ imm32_manager_->ResetComposition(m_hWnd); |
// Fall though and try reading the composition string. |
// Japanese IMEs send a message containing both GCS_RESULTSTR and |
// GCS_COMPSTR, which means an ongoing composition has been finished |
@@ -1661,7 +1662,7 @@ LRESULT RenderWidgetHostViewWin::OnImeComposition( |
} |
// Retrieve the composition string and its attributes of the ongoing |
// composition and send it to a renderer process. |
- if (imm32_manager_.GetComposition(m_hWnd, lparam, &composition)) { |
+ if (imm32_manager_->GetComposition(m_hWnd, lparam, &composition)) { |
// TODO(suzhe): due to a bug of webkit, we can't use selection range with |
// composition string. See: https://bugs.webkit.org/show_bug.cgi?id=37788 |
composition.selection = ui::Range(composition.selection.end()); |
@@ -1695,15 +1696,15 @@ LRESULT RenderWidgetHostViewWin::OnImeEndComposition( |
if (!render_widget_host_) |
return 0; |
- if (imm32_manager_.is_composing()) { |
+ if (imm32_manager_->is_composing()) { |
// A composition has been ended while there is an ongoing composition, |
// i.e. the ongoing composition has been canceled. |
// We need to reset the composition status both of the IMM32Manager object |
// and of the renderer process. |
render_widget_host_->ImeCancelComposition(); |
- imm32_manager_.ResetComposition(m_hWnd); |
+ imm32_manager_->ResetComposition(m_hWnd); |
} |
- imm32_manager_.DestroyImeWindow(m_hWnd); |
+ imm32_manager_->DestroyImeWindow(m_hWnd); |
// Let WTL call ::DefWindowProc() and release its resources. |
handled = FALSE; |
return 0; |
@@ -1822,7 +1823,7 @@ LRESULT RenderWidgetHostViewWin::OnMouseEvent(UINT message, WPARAM wparam, |
if (base::win::IsTSFAwareRequired()) { |
ui::TSFBridge::GetInstance()->CancelComposition(); |
} else { |
- imm32_manager_.CleanupComposition(m_hWnd); |
+ imm32_manager_->CleanupComposition(m_hWnd); |
} |
// Fall through. |
case WM_MOUSEMOVE: |
@@ -2209,7 +2210,7 @@ LRESULT RenderWidgetHostViewWin::OnTouchEvent(UINT message, WPARAM wparam, |
if (base::win::IsTSFAwareRequired()) { |
ui::TSFBridge::GetInstance()->CancelComposition(); |
} else { |
- imm32_manager_.CleanupComposition(m_hWnd); |
+ imm32_manager_->CleanupComposition(m_hWnd); |
} |
// TODO(jschuh): Add support for an arbitrary number of touchpoints. |
@@ -3066,7 +3067,7 @@ LRESULT RenderWidgetHostViewWin::OnDocumentFeed(RECONVERTSTRING* reconv) { |
LRESULT RenderWidgetHostViewWin::OnReconvertString(RECONVERTSTRING* reconv) { |
// If there is a composition string already, we don't allow reconversion. |
- if (imm32_manager_.is_composing()) |
+ if (imm32_manager_->is_composing()) |
return 0; |
if (selection_range_.is_empty()) |
@@ -3116,7 +3117,7 @@ LRESULT RenderWidgetHostViewWin::OnQueryCharPosition( |
return 0; |
RECT target_rect = {}; |
- if (imm32_manager_.is_composing() && !composition_range_.is_empty() && |
+ if (imm32_manager_->is_composing() && !composition_range_.is_empty() && |
position->dwCharPos < composition_character_bounds_.size()) { |
target_rect = |
composition_character_bounds_[position->dwCharPos].ToRECT(); |
@@ -3148,10 +3149,10 @@ void RenderWidgetHostViewWin::UpdateIMEState() { |
} |
if (text_input_type_ != ui::TEXT_INPUT_TYPE_NONE && |
text_input_type_ != ui::TEXT_INPUT_TYPE_PASSWORD) { |
- imm32_manager_.EnableIME(m_hWnd); |
- imm32_manager_.SetUseCompositionWindow(!can_compose_inline_); |
+ imm32_manager_->EnableIME(m_hWnd); |
+ imm32_manager_->SetUseCompositionWindow(!can_compose_inline_); |
} else { |
- imm32_manager_.DisableIME(m_hWnd); |
+ imm32_manager_->DisableIME(m_hWnd); |
} |
} |