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" | |
8 #include "content/public/browser/android/content_view_core.h" | 7 #include "content/public/browser/android/content_view_core.h" |
9 #include "content/public/browser/web_contents.h" | 8 #include "content/public/browser/web_contents.h" |
10 #include "content/public/browser/web_contents_view.h" | 9 #include "content/public/browser/web_contents_view.h" |
11 #include "content/public/common/context_menu_params.h" | 10 #include "content/public/common/context_menu_params.h" |
12 | 11 |
13 namespace android_webview { | 12 namespace android_webview { |
14 | 13 |
15 // static | 14 // static |
16 content::WebContentsViewDelegate* AwWebContentsViewDelegate::Create( | 15 content::WebContentsViewDelegate* AwWebContentsViewDelegate::Create( |
17 content::WebContents* web_contents) { | 16 content::WebContents* web_contents) { |
(...skipping 22 matching lines...) Expand all Loading... |
40 // ChromeWebContentsViewDelegateAndroid::ShowContextMenu. De-dup this if | 39 // ChromeWebContentsViewDelegateAndroid::ShowContextMenu. De-dup this if |
41 // possible. | 40 // possible. |
42 | 41 |
43 // Display paste pop-up only when selection is empty and editable. | 42 // Display paste pop-up only when selection is empty and editable. |
44 if (params.is_editable && params.selection_text.empty()) { | 43 if (params.is_editable && params.selection_text.empty()) { |
45 content::ContentViewCore* content_view_core = | 44 content::ContentViewCore* content_view_core = |
46 content::ContentViewCore::FromWebContents(web_contents_); | 45 content::ContentViewCore::FromWebContents(web_contents_); |
47 if (content_view_core) { | 46 if (content_view_core) { |
48 content_view_core->ShowPastePopup(params.selection_start.x(), | 47 content_view_core->ShowPastePopup(params.selection_start.x(), |
49 params.selection_start.y()); | 48 params.selection_start.y()); |
50 return; | |
51 } | 49 } |
52 } | 50 } |
53 | |
54 AwContents* aw_contents = AwContents::FromWebContents(web_contents_); | |
55 if (!aw_contents) | |
56 return; | |
57 | |
58 // Context menu callback in Chromium is triggered by WebKit on an | |
59 // unhandled GestureLongPress event. Convert the context menu callback | |
60 // back into a long click event for Android WebView since the view | |
61 // system may choose to handle the gesture. | |
62 aw_contents->PerformLongClick(); | |
63 } | 51 } |
64 | 52 |
65 } // namespace android_webview | 53 } // namespace android_webview |
OLD | NEW |