Index: content/browser/android/content_view_core_impl.cc |
diff --git a/content/browser/android/content_view_core_impl.cc b/content/browser/android/content_view_core_impl.cc |
index 0ea0aea9de0494e69ff800916624fa7136265ecf..e9b56a12b7a9fa14c0747893c35617d821f27c9c 100644 |
--- a/content/browser/android/content_view_core_impl.cc |
+++ b/content/browser/android/content_view_core_impl.cc |
@@ -505,8 +505,6 @@ void ContentViewCoreImpl::ShowSelectPopupMenu( |
if (j_obj.is_null()) |
return; |
- ScopedJavaLocalRef<jobject> bounds_rect(CreateJavaRect(env, bounds)); |
- |
// For multi-select list popups we find the list of previous selections by |
// iterating through the items. But for single selection popups we take the |
// given |selected_item| as is. |
@@ -543,8 +541,15 @@ void ContentViewCoreImpl::ShowSelectPopupMenu( |
} |
ScopedJavaLocalRef<jobjectArray> items_array( |
base::android::ToJavaArrayOfStrings(env, labels)); |
+ select_popup_ = view_.AcquireAnchorView(); |
+ const ScopedJavaLocalRef<jobject>& popup_view = select_popup_.view(); |
boliu
2016/07/29 20:05:15
ditto
Jinsuk Kim
2016/08/01 02:02:47
Done.
|
+ if (popup_view.is_null()) |
+ return; |
+ view_.SetAnchorRect(popup_view, |
+ gfx::ScaleRect(gfx::RectF(bounds), page_scale_)); |
Java_ContentViewCore_showSelectPopup( |
- env, j_obj.obj(), reinterpret_cast<intptr_t>(frame), bounds_rect.obj(), |
+ env, j_obj.obj(), popup_view.obj(), |
+ bounds.width() * page_scale_, reinterpret_cast<intptr_t>(frame), |
items_array.obj(), enabled_array.obj(), multiple, selected_array.obj(), |
right_aligned); |
} |
@@ -554,6 +559,7 @@ void ContentViewCoreImpl::HideSelectPopupMenu() { |
ScopedJavaLocalRef<jobject> j_obj = java_ref_.get(env); |
if (!j_obj.is_null()) |
Java_ContentViewCore_hideSelectPopup(env, j_obj.obj()); |
+ select_popup_.Reset(); |
} |
void ContentViewCoreImpl::OnGestureEventAck(const blink::WebGestureEvent& event, |
@@ -865,11 +871,6 @@ void ContentViewCoreImpl::SelectBetweenCoordinates(const gfx::PointF& base, |
web_contents_->SelectRange(base_point, extent_point); |
} |
-const base::android::JavaRef<jobject>& |
-ContentViewCoreImpl::GetViewAndroidDelegate() const { |
- return view_.GetViewAndroidDelegate(); |
-} |
- |
ui::WindowAndroid* ContentViewCoreImpl::GetWindowAndroid() const { |
return view_.GetWindowAndroid(); |
} |