Index: content/browser/renderer_host/render_widget_host_view_mac.mm |
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm |
index e1a196bd9a530b5776b7c639462f2f1f2900c35f..9d0b18b52a35a2b8927b75a894087009c2a2f628 100644 |
--- a/content/browser/renderer_host/render_widget_host_view_mac.mm |
+++ b/content/browser/renderer_host/render_widget_host_view_mac.mm |
@@ -513,8 +513,6 @@ void RenderWidgetHostViewBase::GetDefaultScreenInfo( |
RenderWidgetHostViewMac::RenderWidgetHostViewMac(RenderWidgetHost* widget, |
bool is_guest_view_hack) |
: render_widget_host_(RenderWidgetHostImpl::From(widget)), |
- text_input_type_(ui::TEXT_INPUT_TYPE_NONE), |
- can_compose_inline_(true), |
browser_compositor_state_(BrowserCompositorDestroyed), |
browser_compositor_placeholder_(new BrowserCompositorMacPlaceholder), |
page_at_minimum_scale_(true), |
@@ -1015,23 +1013,24 @@ void RenderWidgetHostViewMac::SetIsLoading(bool is_loading) { |
// like Chrome does on Windows, call |UpdateCursor()| here. |
} |
-void RenderWidgetHostViewMac::TextInputStateChanged( |
-const ViewHostMsg_TextInputState_Params& params) { |
- if (text_input_type_ != params.type |
- || can_compose_inline_ != params.can_compose_inline) { |
- text_input_type_ = params.type; |
- can_compose_inline_ = params.can_compose_inline; |
- if (HasFocus()) { |
- SetTextInputActive(true); |
+void RenderWidgetHostViewMac::UpdateTextInputState() { |
+ RenderWidgetHostViewBase* focused_view = GetFocusedView(); |
+ if (!focused_view->ShouldProcessTextInputState()) |
+ return; |
+ |
+ cached_text_input_state_ = focused_view->text_input_state(); |
- // Let AppKit cache the new input context to make IMEs happy. |
- // See http://crbug.com/73039. |
- [NSApp updateWindows]; |
+ if (HasFocus()) { |
+ SetTextInputActive(true); |
+ |
+ // Let AppKit cache the new input context to make IMEs happy. |
+ // See http://crbug.com/73039. |
+ [NSApp updateWindows]; |
#ifndef __LP64__ |
- UseInputWindow(TSMGetActiveDocument(), !can_compose_inline_); |
+ UseInputWindow(TSMGetActiveDocument(), |
+ focused_view->text_input_state() _->can_compose_inline_); |
#endif |
- } |
} |
} |
@@ -1716,12 +1715,12 @@ gfx::Point RenderWidgetHostViewMac::AccessibilityOriginInScreen( |
void RenderWidgetHostViewMac::SetTextInputActive(bool active) { |
if (active) { |
- if (text_input_type_ == ui::TEXT_INPUT_TYPE_PASSWORD) |
+ if (current_text_input_state()->type == ui::TEXT_INPUT_TYPE_PASSWORD) |
EnablePasswordInput(); |
else |
DisablePasswordInput(); |
} else { |
- if (text_input_type_ == ui::TEXT_INPUT_TYPE_PASSWORD) |
+ if (current_text_input_state()->type == ui::TEXT_INPUT_TYPE_PASSWORD) |
DisablePasswordInput(); |
} |
} |
@@ -3076,7 +3075,7 @@ extern NSString *NSTextInputReplacementRangeAttributeName; |
if (focusedPluginIdentifier_ != -1) |
return [[ComplexTextInputPanel sharedComplexTextInputPanel] inputContext]; |
- switch(renderWidgetHostView_->text_input_type_) { |
+ switch (renderWidgetHostView_->current_text_input_state()->type) { |
case ui::TEXT_INPUT_TYPE_NONE: |
case ui::TEXT_INPUT_TYPE_PASSWORD: |
return nil; |
@@ -3411,8 +3410,8 @@ extern NSString *NSTextInputReplacementRangeAttributeName; |
BOOL sendTypeIsString = [sendType isEqual:NSStringPboardType]; |
BOOL returnTypeIsString = [returnType isEqual:NSStringPboardType]; |
BOOL hasText = !renderWidgetHostView_->selected_text().empty(); |
- BOOL takesText = |
- renderWidgetHostView_->text_input_type_ != ui::TEXT_INPUT_TYPE_NONE; |
+ BOOL takesText = renderWidgetHostView_->current_text_input_state()->type != |
+ ui::TEXT_INPUT_TYPE_NONE; |
if (sendTypeIsString && hasText && !returnType) { |
requestor = self; |