Chromium Code Reviews| 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 dcac2b67633e29b535283ca218ced44280a1ad00..3f501f4f9036ebbd7fd82350643213a99d14d906 100644 |
| --- a/content/browser/renderer_host/render_widget_host_view_mac.mm |
| +++ b/content/browser/renderer_host/render_widget_host_view_mac.mm |
| @@ -543,7 +543,7 @@ cc::SurfaceId RenderWidgetHostViewMac::SurfaceIdForTesting() const { |
| } |
| ui::TextInputType RenderWidgetHostViewMac::GetTextInputType() { |
| - if (!GetTextInputManager() || !GetTextInputManager()->GetActiveWidget()) |
| + if (!GetActiveWidget()) |
| return ui::TEXT_INPUT_TYPE_NONE; |
| return GetTextInputManager()->GetTextInputState()->type; |
| } |
| @@ -1045,13 +1045,6 @@ void RenderWidgetHostViewMac::SelectionChanged(const base::string16& text, |
| RenderWidgetHostViewBase::SelectionChanged(text, offset, range); |
| } |
| -void RenderWidgetHostViewMac::SelectionBoundsChanged( |
| - const ViewHostMsg_SelectionBounds_Params& params) { |
| - if (params.anchor_rect == params.focus_rect) |
| - caret_rect_ = params.anchor_rect; |
| - first_selection_rect_ = params.anchor_rect; |
| -} |
| - |
| void RenderWidgetHostViewMac::SetShowingContextMenu(bool showing) { |
| RenderWidgetHostViewBase::SetShowingContextMenu(showing); |
| @@ -1237,6 +1230,9 @@ bool RenderWidgetHostViewMac::GetCachedFirstRectForCharacterRange( |
| NSRange range, |
| NSRect* rect, |
| NSRange* actual_range) { |
| + if (!GetTextInputManager()) |
| + return false; |
| + |
| DCHECK(rect); |
| // This exists to make IMEs more responsive, see http://crbug.com/115920 |
| TRACE_EVENT0("browser", |
| @@ -1247,7 +1243,10 @@ bool RenderWidgetHostViewMac::GetCachedFirstRectForCharacterRange( |
| if (selection_range_.is_empty() && requested_range == selection_range_) { |
| if (actual_range) |
| *actual_range = range; |
| - *rect = NSRectFromCGRect(caret_rect_.ToCGRect()); |
| + *rect = |
| + NSRectFromCGRect(GetTextInputManager() |
| + ->GetSelectionRegion(GetFocusedWidget()->GetView()) |
|
erikchen
2016/08/17 23:31:16
This relies on the assumption that GetFocusedWidge
EhsanK
2016/08/22 14:48:28
Done. I strongly believe that is the case since th
|
| + ->caret_rect.ToCGRect()); |
| return true; |
| } |
| @@ -1256,7 +1255,10 @@ bool RenderWidgetHostViewMac::GetCachedFirstRectForCharacterRange( |
| return false; |
| if (actual_range) |
| *actual_range = selection_range_.ToNSRange(); |
| - *rect = NSRectFromCGRect(first_selection_rect_.ToCGRect()); |
| + *rect = |
| + NSRectFromCGRect(GetTextInputManager() |
| + ->GetSelectionRegion(GetFocusedWidget()->GetView()) |
| + ->first_selection_rect.ToCGRect()); |
| return true; |
| } |
| @@ -2806,7 +2808,7 @@ extern NSString *NSTextInputReplacementRangeAttributeName; |
| &rect, |
| actualRange)) { |
| rect = TextInputClientMac::GetInstance()->GetFirstRectForRange( |
| - renderWidgetHostView_->render_widget_host_, theRange); |
| + renderWidgetHostView_->GetFocusedWidget(), theRange); |
| // TODO(thakis): Pipe |actualRange| through TextInputClientMac machinery. |
| if (actualRange) |
| @@ -2824,7 +2826,7 @@ extern NSString *NSTextInputReplacementRangeAttributeName; |
| actualRange:(NSRangePointer)actualRange { |
| // During tab closure, events can arrive after RenderWidgetHostViewMac:: |
| // Destroy() is called, which will have set |render_widget_host_| to null. |
| - if (!renderWidgetHostView_->render_widget_host_) { |
| + if (!renderWidgetHostView_->GetFocusedWidget()) { |
| [self cancelComposition]; |
| return NSZeroRect; |
| } |