diff options
author | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-07 03:30:22 +0000 |
---|---|---|
committer | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-07 03:30:22 +0000 |
commit | 2cb5b91effa942fa165eb847c295ddc883ab70df (patch) | |
tree | 724dc900ea6f2dbfe0299506ad940bff146717df /chrome/browser/views/info_bubble.cc | |
parent | 6d8d0e083f750fda6da6edcf8949c9d4c59a16aa (diff) | |
download | chromium_src-2cb5b91effa942fa165eb847c295ddc883ab70df.zip chromium_src-2cb5b91effa942fa165eb847c295ddc883ab70df.tar.gz chromium_src-2cb5b91effa942fa165eb847c295ddc883ab70df.tar.bz2 |
Converts info bubbles on views/gtk from popups to normal windows to
avoid the focus problems.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/246099
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28228 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/views/info_bubble.cc')
-rw-r--r-- | chrome/browser/views/info_bubble.cc | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/chrome/browser/views/info_bubble.cc b/chrome/browser/views/info_bubble.cc index 91a41a4..bba77a9f3 100644 --- a/chrome/browser/views/info_bubble.cc +++ b/chrome/browser/views/info_bubble.cc @@ -211,7 +211,7 @@ void InfoBubble::Close() { InfoBubble::InfoBubble() : #if defined(OS_LINUX) - WidgetGtk(TYPE_POPUP), + WidgetGtk(TYPE_WINDOW), #endif delegate_(NULL), parent_(NULL), @@ -223,16 +223,17 @@ void InfoBubble::Init(views::Window* parent, views::View* contents, InfoBubbleDelegate* delegate) { parent_ = parent; - parent_->DisableInactiveRendering(); delegate_ = delegate; // Create the main window. #if defined(OS_WIN) + parent_->DisableInactiveRendering(); set_window_style(WS_POPUP | WS_CLIPCHILDREN); set_window_ex_style(WS_EX_TOOLWINDOW); WidgetWin::Init(parent->GetNativeWindow(), gfx::Rect()); #elif defined(OS_LINUX) MakeTransparent(); + make_transient_to_parent(); WidgetGtk::Init(GTK_WIDGET(parent->GetNativeWindow()), gfx::Rect()); #endif @@ -306,6 +307,11 @@ void InfoBubble::OnActivate(UINT action, BOOL minimized, HWND window) { GetRootView()->GetChildViewAt(0)->RequestFocus(); } } +#elif defined(OS_LINUX) +void InfoBubble::IsActiveChanged() { + if (!IsActive()) + Close(); +} #endif void InfoBubble::Close(bool closed_by_escape) { |