Index: chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views.cc |
diff --git a/chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views.cc b/chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views.cc |
index fe83cc978c3fe9982bb4bbbd79d6afb943c1f8ab..d1da14e535fb9bfc21a21ecbf26e8e68c1ca8d22 100644 |
--- a/chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views.cc |
+++ b/chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views.cc |
@@ -137,14 +137,13 @@ void ChromeWebContentsViewDelegateViews::ShowContextMenu( |
gfx::Point screen_point(params.x, params.y); |
- // Convert from content coordinates to window coordinates. |
- aura::Window* web_contents_window = |
- web_contents_->GetView()->GetNativeView(); |
- aura::Window* root_window = web_contents_window->GetRootWindow(); |
+ // Convert from target window coordinates to root window coordinates. |
+ aura::Window* target_window = GetActiveNativeView(); |
+ aura::Window* root_window = target_window->GetRootWindow(); |
aura::client::ScreenPositionClient* screen_position_client = |
aura::client::GetScreenPositionClient(root_window); |
if (screen_position_client) { |
- screen_position_client->ConvertPointToScreen(web_contents_window, |
+ screen_position_client->ConvertPointToScreen(target_window, |
&screen_point); |
} |
// Enable recursive tasks on the message loop so we can get updates while |
@@ -163,9 +162,14 @@ void ChromeWebContentsViewDelegateViews::SizeChanged(const gfx::Size& size) { |
sad_tab->GetWidget()->SetBounds(gfx::Rect(size)); |
} |
+aura::Window* ChromeWebContentsViewDelegateViews::GetActiveNativeView() { |
+ return web_contents_->GetFullscreenRenderWidgetHostView() ? |
+ web_contents_->GetFullscreenRenderWidgetHostView()->GetNativeView() : |
+ web_contents_->GetView()->GetNativeView(); |
+} |
+ |
views::Widget* ChromeWebContentsViewDelegateViews::GetTopLevelWidget() { |
- return views::Widget::GetTopLevelWidgetForNativeView( |
- web_contents_->GetView()->GetNativeView()); |
+ return views::Widget::GetTopLevelWidgetForNativeView(GetActiveNativeView()); |
} |
views::FocusManager* |