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

Unified Diff: content/browser/renderer_host/render_widget_host_view_mac.mm

Issue 2213503002: Tracking SelectionBounds for all RenderWidgets on the Browser Side (Mac) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removing some #ifdefs Created 4 years, 4 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: 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;
}

Powered by Google App Engine
This is Rietveld 408576698