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 "content/browser/renderer_host/render_widget_host_view_aura.h" | 5 #include "content/browser/renderer_host/render_widget_host_view_aura.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/auto_reset.h" | 10 #include "base/auto_reset.h" |
(...skipping 2702 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2713 snapped = window_->GetRootWindow(); | 2713 snapped = window_->GetRootWindow(); |
2714 } else { | 2714 } else { |
2715 snapped = window_->GetToplevelWindow(); | 2715 snapped = window_->GetToplevelWindow(); |
2716 } | 2716 } |
2717 if (snapped && snapped != window_) | 2717 if (snapped && snapped != window_) |
2718 ui::SnapLayerToPhysicalPixelBoundary(snapped->layer(), window_->layer()); | 2718 ui::SnapLayerToPhysicalPixelBoundary(snapped->layer(), window_->layer()); |
2719 | 2719 |
2720 has_snapped_to_boundary_ = true; | 2720 has_snapped_to_boundary_ = true; |
2721 } | 2721 } |
2722 | 2722 |
2723 void RenderWidgetHostViewAura::OnShowContextMenu() { | 2723 bool RenderWidgetHostViewAura::OnShowContextMenu( |
| 2724 const ContextMenuParams& params) { |
2724 #if defined(OS_WIN) | 2725 #if defined(OS_WIN) |
| 2726 last_context_menu_params_.reset(); |
| 2727 |
| 2728 if (params.source_type == ui::MENU_SOURCE_TOUCH) { |
| 2729 last_context_menu_params_.reset(new ContextMenuParams); |
| 2730 *last_context_menu_params_ = params; |
| 2731 return false; |
| 2732 } |
2725 showing_context_menu_ = true; | 2733 showing_context_menu_ = true; |
2726 #endif | 2734 #endif |
| 2735 return true; |
2727 } | 2736 } |
2728 | 2737 |
2729 void RenderWidgetHostViewAura::SetSelectionControllerClientForTest( | 2738 void RenderWidgetHostViewAura::SetSelectionControllerClientForTest( |
2730 scoped_ptr<TouchSelectionControllerClientAura> client) { | 2739 scoped_ptr<TouchSelectionControllerClientAura> client) { |
2731 selection_controller_client_.swap(client); | 2740 selection_controller_client_.swap(client); |
2732 CreateSelectionController(); | 2741 CreateSelectionController(); |
2733 } | 2742 } |
2734 | 2743 |
2735 void RenderWidgetHostViewAura::InternalSetBounds(const gfx::Rect& rect) { | 2744 void RenderWidgetHostViewAura::InternalSetBounds(const gfx::Rect& rect) { |
2736 SnapToPhysicalPixelBoundary(); | 2745 SnapToPhysicalPixelBoundary(); |
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2924 event->SetHandled(); | 2933 event->SetHandled(); |
2925 } | 2934 } |
2926 break; | 2935 break; |
2927 case ui::ET_GESTURE_TAP: | 2936 case ui::ET_GESTURE_TAP: |
2928 if (selection_controller_->WillHandleTapEvent( | 2937 if (selection_controller_->WillHandleTapEvent( |
2929 event->location_f(), event->details().tap_count())) { | 2938 event->location_f(), event->details().tap_count())) { |
2930 event->SetHandled(); | 2939 event->SetHandled(); |
2931 } | 2940 } |
2932 break; | 2941 break; |
2933 case ui::ET_GESTURE_SCROLL_BEGIN: | 2942 case ui::ET_GESTURE_SCROLL_BEGIN: |
2934 selection_controller_->OnScrollBeginEvent(); | |
2935 selection_controller_client_->OnScrollStarted(); | 2943 selection_controller_client_->OnScrollStarted(); |
2936 break; | 2944 break; |
2937 case ui::ET_GESTURE_SCROLL_END: | 2945 case ui::ET_GESTURE_SCROLL_END: |
2938 selection_controller_client_->OnScrollCompleted(); | 2946 selection_controller_client_->OnScrollCompleted(); |
2939 break; | 2947 break; |
| 2948 #if defined(OS_WIN) |
| 2949 case ui::ET_GESTURE_LONG_TAP: { |
| 2950 if (!last_context_menu_params_) |
| 2951 break; |
| 2952 |
| 2953 scoped_ptr<ContextMenuParams> context_menu_params = |
| 2954 std::move(last_context_menu_params_); |
| 2955 |
| 2956 // On Windows we want to display the context menu when the long press |
| 2957 // gesture is released. To achieve that, we switch the saved context |
| 2958 // menu params source type to MENU_SOURCE_MOUSE. This is to ensure that |
| 2959 // the RenderWidgetHostViewAura::OnShowContextMenu function which is |
| 2960 // called from the ShowContextMenu call below, does not treat it as |
| 2961 // a context menu request coming in from touch. |
| 2962 DCHECK(context_menu_params->source_type == ui::MENU_SOURCE_TOUCH); |
| 2963 context_menu_params->source_type = ui::MENU_SOURCE_MOUSE; |
| 2964 |
| 2965 RenderViewHostDelegateView* delegate_view = |
| 2966 GetRenderViewHostDelegateView(); |
| 2967 if (delegate_view) |
| 2968 delegate_view->ShowContextMenu(GetFocusedFrame(), |
| 2969 *context_menu_params); |
| 2970 |
| 2971 event->SetHandled(); |
| 2972 // WARNING: we may have been deleted during the call to ShowContextMenu(). |
| 2973 break; |
| 2974 } |
| 2975 #endif |
2940 default: | 2976 default: |
2941 break; | 2977 break; |
2942 } | 2978 } |
2943 } | 2979 } |
2944 | 2980 |
| 2981 RenderViewHostDelegateView* |
| 2982 RenderWidgetHostViewAura::GetRenderViewHostDelegateView() { |
| 2983 // Use RenderViewHostDelegate to get to the WebContentsViewAura, which will |
| 2984 // actually show the disambiguation popup. |
| 2985 RenderViewHost* rvh = RenderViewHost::From(host_); |
| 2986 if (!rvh) |
| 2987 return nullptr; |
| 2988 |
| 2989 RenderViewHostDelegate* delegate = rvh->GetDelegate(); |
| 2990 if (!delegate) |
| 2991 return nullptr; |
| 2992 |
| 2993 return delegate->GetDelegateView(); |
| 2994 } |
| 2995 |
2945 //////////////////////////////////////////////////////////////////////////////// | 2996 //////////////////////////////////////////////////////////////////////////////// |
2946 // DelegatedFrameHost, public: | 2997 // DelegatedFrameHost, public: |
2947 | 2998 |
2948 ui::Layer* RenderWidgetHostViewAura::DelegatedFrameHostGetLayer() const { | 2999 ui::Layer* RenderWidgetHostViewAura::DelegatedFrameHostGetLayer() const { |
2949 return window_->layer(); | 3000 return window_->layer(); |
2950 } | 3001 } |
2951 | 3002 |
2952 bool RenderWidgetHostViewAura::DelegatedFrameHostIsVisible() const { | 3003 bool RenderWidgetHostViewAura::DelegatedFrameHostIsVisible() const { |
2953 return !host_->is_hidden(); | 3004 return !host_->is_hidden(); |
2954 } | 3005 } |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3029 | 3080 |
3030 //////////////////////////////////////////////////////////////////////////////// | 3081 //////////////////////////////////////////////////////////////////////////////// |
3031 // RenderWidgetHostViewBase, public: | 3082 // RenderWidgetHostViewBase, public: |
3032 | 3083 |
3033 // static | 3084 // static |
3034 void RenderWidgetHostViewBase::GetDefaultScreenInfo(WebScreenInfo* results) { | 3085 void RenderWidgetHostViewBase::GetDefaultScreenInfo(WebScreenInfo* results) { |
3035 GetScreenInfoForWindow(results, NULL); | 3086 GetScreenInfoForWindow(results, NULL); |
3036 } | 3087 } |
3037 | 3088 |
3038 } // namespace content | 3089 } // namespace content |
OLD | NEW |