From d19a23c54f1a3169aec9d10d0a0c9664c000d034 Mon Sep 17 00:00:00 2001 From: "kuan@chromium.org" Date: Fri, 19 Feb 2010 22:52:16 +0000 Subject: fix bug to not show context menu when mouse is between tabstrip and toolbar. BUG=33454 TEST=verify per bug report. Review URL: http://codereview.chromium.org/650071 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39501 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/chromeos/frame/browser_view.cc | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'chrome') diff --git a/chrome/browser/chromeos/frame/browser_view.cc b/chrome/browser/chromeos/frame/browser_view.cc index 3ebe1d7..e7a1c9c 100644 --- a/chrome/browser/chromeos/frame/browser_view.cc +++ b/chrome/browser/chromeos/frame/browser_view.cc @@ -449,7 +449,15 @@ void BrowserView::ButtonPressed(views::Button* sender, // views::ContextMenuController overrides. void BrowserView::ShowContextMenu(views::View* source, int x, int y, bool is_mouse_gesture) { - system_menu_menu_->RunMenuAt(gfx::Point(x, y), views::Menu2::ALIGN_TOPLEFT); + // Only show context menu if point is in unobscured parts of browser, i.e. + // if NonClientHitTest returns : + // - HTCAPTION: in title bar or unobscured part of tabstrip + // - HTNOWHERE: as the name implies. + gfx::Point point_in_parent_coords(x, y); + views::View::ConvertPointToView(NULL, GetParent(), &point_in_parent_coords); + int hit_test = NonClientHitTest(point_in_parent_coords); + if (hit_test == HTCAPTION || hit_test == HTNOWHERE) + system_menu_menu_->RunMenuAt(gfx::Point(x, y), views::Menu2::ALIGN_TOPLEFT); } // StatusAreaHost overrides. -- cgit v1.1