OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "android_webview/native/aw_web_contents_view_delegate.h" | 5 #include "android_webview/native/aw_web_contents_view_delegate.h" |
6 | 6 |
7 #include "android_webview/native/aw_contents.h" | 7 #include "android_webview/native/aw_contents.h" |
8 #include "content/public/browser/android/content_view_core.h" | 8 #include "content/public/browser/android/content_view_core.h" |
9 #include "content/public/browser/web_contents.h" | 9 #include "content/public/browser/web_contents.h" |
| 10 #include "content/public/browser/web_contents_view.h" |
10 #include "content/public/common/context_menu_params.h" | 11 #include "content/public/common/context_menu_params.h" |
11 | 12 |
12 namespace android_webview { | 13 namespace android_webview { |
13 | 14 |
14 // static | 15 // static |
15 content::WebContentsViewDelegate* AwWebContentsViewDelegate::Create( | 16 content::WebContentsViewDelegate* AwWebContentsViewDelegate::Create( |
16 content::WebContents* web_contents) { | 17 content::WebContents* web_contents) { |
17 return new AwWebContentsViewDelegate(web_contents); | 18 return new AwWebContentsViewDelegate(web_contents); |
18 } | 19 } |
19 | 20 |
(...skipping 16 matching lines...) Expand all Loading... |
36 void AwWebContentsViewDelegate::ShowContextMenu( | 37 void AwWebContentsViewDelegate::ShowContextMenu( |
37 const content::ContextMenuParams& params, | 38 const content::ContextMenuParams& params, |
38 content::ContextMenuSourceType type) { | 39 content::ContextMenuSourceType type) { |
39 // TODO(boliu): Large blocks of this function are identical with | 40 // TODO(boliu): Large blocks of this function are identical with |
40 // ChromeWebContentsViewDelegateAndroid::ShowContextMenu. De-dup this if | 41 // ChromeWebContentsViewDelegateAndroid::ShowContextMenu. De-dup this if |
41 // possible. | 42 // possible. |
42 | 43 |
43 // Display paste pop-up only when selection is empty and editable. | 44 // Display paste pop-up only when selection is empty and editable. |
44 if (params.is_editable && params.selection_text.empty()) { | 45 if (params.is_editable && params.selection_text.empty()) { |
45 content::ContentViewCore* content_view_core = | 46 content::ContentViewCore* content_view_core = |
46 web_contents_->GetContentNativeView(); | 47 web_contents_->GetView()->GetContentNativeView(); |
47 if (content_view_core) { | 48 if (content_view_core) { |
48 content_view_core->ShowPastePopup(params.selection_start.x(), | 49 content_view_core->ShowPastePopup(params.selection_start.x(), |
49 params.selection_start.y()); | 50 params.selection_start.y()); |
50 return; | 51 return; |
51 } | 52 } |
52 } | 53 } |
53 | 54 |
54 AwContents* aw_contents = AwContents::FromWebContents(web_contents_); | 55 AwContents* aw_contents = AwContents::FromWebContents(web_contents_); |
55 if (!aw_contents) | 56 if (!aw_contents) |
56 return; | 57 return; |
57 | 58 |
58 // Context menu callback in Chromium is triggered by WebKit on an | 59 // Context menu callback in Chromium is triggered by WebKit on an |
59 // unhandled GestureLongPress event. Convert the context menu callback | 60 // unhandled GestureLongPress event. Convert the context menu callback |
60 // back into a long click event for Android WebView since the view | 61 // back into a long click event for Android WebView since the view |
61 // system may choose to handle the gesture. | 62 // system may choose to handle the gesture. |
62 aw_contents->PerformLongClick(); | 63 aw_contents->PerformLongClick(); |
63 } | 64 } |
64 | 65 |
65 } // namespace android_webview | 66 } // namespace android_webview |
OLD | NEW |