summaryrefslogtreecommitdiffstats
path: root/chrome/browser/views/browser_actions_container.cc
diff options
context:
space:
mode:
authorjcampan@chromium.org <jcampan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-15 21:03:13 +0000
committerjcampan@chromium.org <jcampan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-15 21:03:13 +0000
commite00e18af2f61e8eec071778f66ef15e8bf671d42 (patch)
treeae6a8d76011d08df79e2e7e3c22bb3440c822973 /chrome/browser/views/browser_actions_container.cc
parentf9a88c50069a49d1314a755dd2aac3812c23659d (diff)
downloadchromium_src-e00e18af2f61e8eec071778f66ef15e8bf671d42.zip
chromium_src-e00e18af2f61e8eec071778f66ef15e8bf671d42.tar.gz
chromium_src-e00e18af2f61e8eec071778f66ef15e8bf671d42.tar.bz2
Making browser bubble notifies to its delegate whether it
lost focus to a child window. This is used to prevent closing browser/page action bubble when they lose focus to a select popup or alert box. BUG=37784 TEST=Start Chrome with extensions that have a page action and browser action that contains selects (combobox) and a way to show an alert box. Verify that showing the select popup or the alert dialog does not cause the bubble to close. Review URL: http://codereview.chromium.org/899002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41630 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/views/browser_actions_container.cc')
-rw-r--r--chrome/browser/views/browser_actions_container.cc24
1 files changed, 4 insertions, 20 deletions
diff --git a/chrome/browser/views/browser_actions_container.cc b/chrome/browser/views/browser_actions_container.cc
index 3029c5d..a8fa362 100644
--- a/chrome/browser/views/browser_actions_container.cc
+++ b/chrome/browser/views/browser_actions_container.cc
@@ -843,28 +843,12 @@ void BrowserActionsContainer::BubbleGotFocus(BrowserBubble* bubble) {
}
void BrowserActionsContainer::BubbleLostFocus(BrowserBubble* bubble,
- gfx::NativeView focused_view) {
- if (!popup_)
+ bool lost_focus_to_child) {
+ // Don't close when we are losing focus to a child window, this is the case
+ // for select popups and alert for example.
+ if (!popup_ || lost_focus_to_child)
return;
-#if defined(OS_WIN)
- // Don't hide when we are losing focus to a child window. This is the case
- // with select popups.
- // TODO(jcampan): http://crbugs.com/29131 make that work on toolkit views
- // so this #if defined can be removed.
- gfx::NativeView popup_native_view = popup_->native_view();
- gfx::NativeView parent = focused_view;
- while (parent = ::GetParent(parent)) {
- if (parent == popup_native_view)
- return;
- }
-
- // Don't close when we are losing focus to a window we own.
- // This is the case with JavaScript message boxes (such as alerts).
- if (::GetWindow(focused_view, GW_OWNER) == popup_native_view)
- return;
-#endif
-
// This is a bit annoying. If you click on the button that generated the
// current popup, then we first get this lost focus message, and then
// we get the click action. This results in the popup being immediately