Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3513)

Unified Diff: chrome/browser/ui/views/bubble/bubble.cc

Issue 7015051: Re-land: (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/bubble/bubble.cc
===================================================================
--- chrome/browser/ui/views/bubble/bubble.cc (revision 85284)
+++ chrome/browser/ui/views/bubble/bubble.cc (working copy)
@@ -121,6 +121,11 @@
Bubble::Bubble()
:
+#if defined(OS_WIN)
+ views::WidgetWin(new views::Widget),
+#elif defined(TOOLKIT_USES_GTK)
+ views::WidgetGtk(new views::Widget),
+#endif
#if defined(TOOLKIT_USES_GTK)
border_contents_(NULL),
#elif defined(OS_WIN)
@@ -129,7 +134,7 @@
delegate_(NULL),
show_status_(kOpen),
fade_away_on_close_(false),
-#if defined(OS_LINUX)
+#if defined(TOOLKIT_USES_GTK)
type_(views::Widget::InitParams::TYPE_WINDOW),
#endif
#if defined(OS_CHROMEOS)
@@ -142,7 +147,8 @@
#if defined(OS_CHROMEOS)
Bubble::Bubble(views::Widget::InitParams::Type type,
bool show_while_screen_is_locked)
- : border_contents_(NULL),
+ : views::WidgetGtk(new views::Widget),
+ border_contents_(NULL),
delegate_(NULL),
show_status_(kOpen),
fade_away_on_close_(false),
@@ -168,7 +174,7 @@
// Create the main window.
#if defined(OS_WIN)
- views::Window* parent_window = parent->GetWindow();
+ views::Window* parent_window = parent->GetContainingWindow();
if (parent_window)
parent_window->DisableInactiveRendering();
set_window_style(WS_POPUP | WS_CLIPCHILDREN);
@@ -185,7 +191,7 @@
if (fade_in) {
border_->SetOpacity(0);
- SetOpacity(0);
+ GetWidget()->SetOpacity(0);
}
border_->InitBorderWidgetWin(CreateBorderContents(), parent->GetNativeView());
@@ -195,6 +201,7 @@
// latter is displayed on top of the former.
views::Widget::InitParams params(views::Widget::InitParams::TYPE_POPUP);
params.parent = border_->GetNativeView();
+ params.native_widget = this;
GetWidget()->Init(params);
SetWindowText(GetNativeView(), delegate_->accessible_name().c_str());
@@ -202,8 +209,7 @@
views::Widget::InitParams params(type_);
params.transparent = true;
params.parent_widget = parent;
- // TODO(beng): Figure out how to make this implicit or set via InitParams.
- make_transient_to_parent();
+ params.native_widget = this;
GetWidget()->Init(params);
#if defined(OS_CHROMEOS)
{
@@ -223,7 +229,7 @@
// that when |contents| gets added, it will already have a widget, and thus
// any NativeButtons it creates in ViewHierarchyChanged() will be functional
// (e.g. calling SetChecked() on checkboxes is safe).
- SetContentsView(contents_view);
+ GetWidget()->SetContentsView(contents_view);
// Adding |contents| as a child has to be done before we call
// contents->GetPreferredSize() below, since some supplied views don't
// actually initialize themselves until they're added to a hierarchy.
@@ -262,10 +268,10 @@
gfx::Rect(gfx::Point(), window_bounds.size()));
contents->SetBoundsRect(contents_bounds);
#endif
- SetBounds(window_bounds);
+ GetWidget()->SetBounds(window_bounds);
// Register the Escape accelerator for closing.
- GetFocusManager()->RegisterAccelerator(
+ GetWidget()->GetFocusManager()->RegisterAccelerator(
views::Accelerator(ui::VKEY_ESCAPE, false, false, false), this);
// Done creating the bubble.
@@ -280,7 +286,7 @@
if (fade_in)
FadeIn();
#elif defined(TOOLKIT_USES_GTK)
- views::WidgetGtk::Show();
+ GetWidget()->Show();
#endif
}
@@ -307,23 +313,23 @@
gfx::Rect(gfx::Point(), window_bounds.size()));
contents_->SetBoundsRect(contents_bounds);
#endif
- SetBounds(window_bounds);
+ GetWidget()->SetBounds(window_bounds);
}
#if defined(OS_WIN)
void Bubble::OnActivate(UINT action, BOOL minimized, HWND window) {
// The popup should close when it is deactivated.
if (action == WA_INACTIVE) {
- Close();
+ GetWidget()->Close();
} else if (action == WA_ACTIVE) {
- DCHECK(GetRootView()->has_children());
- GetRootView()->GetChildViewAt(0)->RequestFocus();
+ DCHECK(GetWidget()->GetRootView()->has_children());
+ GetWidget()->GetRootView()->GetChildViewAt(0)->RequestFocus();
}
}
#elif defined(TOOLKIT_USES_GTK)
void Bubble::IsActiveChanged() {
- if (!IsActive())
- Close();
+ if (!GetWidget()->IsActive())
+ GetWidget()->Close();
}
#endif
@@ -331,13 +337,15 @@
if (show_status_ == kClosed)
return;
- GetFocusManager()->UnregisterAccelerator(
+ GetWidget()->GetFocusManager()->UnregisterAccelerator(
views::Accelerator(ui::VKEY_ESCAPE, false, false, false), this);
if (delegate_)
delegate_->BubbleClosing(this, closed_by_escape);
show_status_ = kClosed;
#if defined(OS_WIN)
border_->Close();
+#endif
+#if defined(OS_WIN)
WidgetWin::Close();
#elif defined(TOOLKIT_USES_GTK)
WidgetGtk::Close();
« no previous file with comments | « chrome/browser/ui/views/bubble/border_widget_win.cc ('k') | chrome/browser/ui/views/constrained_html_delegate_gtk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698