Index: ui/views/bubble/tray_bubble_view.cc |
diff --git a/ui/views/bubble/tray_bubble_view.cc b/ui/views/bubble/tray_bubble_view.cc |
index 6d29a97d269cd9c8261e0c02a1715daddcbba10c..a7657e9ceaf7cf0bbde4274c7963eeded7865489 100644 |
--- a/ui/views/bubble/tray_bubble_view.cc |
+++ b/ui/views/bubble/tray_bubble_view.cc |
@@ -171,33 +171,16 @@ class BottomAlignedBoxLayout : public BoxLayout { |
using internal::TrayBubbleContentMask; |
using internal::BottomAlignedBoxLayout; |
-TrayBubbleView::InitParams::InitParams(AnchorAlignment anchor_alignment, |
- int min_width, |
- int max_width) |
- : anchor_alignment(anchor_alignment), |
- min_width(min_width), |
- max_width(max_width), |
- max_height(0), |
- can_activate(false), |
- close_on_deactivate(true) {} |
+TrayBubbleView::InitParams::InitParams() = default; |
TrayBubbleView::InitParams::InitParams(const InitParams& other) = default; |
-// static |
-TrayBubbleView* TrayBubbleView::Create(View* anchor, |
- Delegate* delegate, |
- InitParams* init_params) { |
- return new TrayBubbleView(anchor, delegate, *init_params); |
-} |
- |
-TrayBubbleView::TrayBubbleView(View* anchor, |
- Delegate* delegate, |
- const InitParams& init_params) |
- : BubbleDialogDelegateView(anchor, |
+TrayBubbleView::TrayBubbleView(const InitParams& init_params) |
+ : BubbleDialogDelegateView(init_params.anchor_view, |
GetArrowAlignment(init_params.anchor_alignment)), |
params_(init_params), |
layout_(new BottomAlignedBoxLayout(this)), |
- delegate_(delegate), |
+ delegate_(init_params.delegate), |
preferred_width_(init_params.min_width), |
bubble_border_(new BubbleBorder( |
arrow(), |
@@ -206,11 +189,14 @@ TrayBubbleView::TrayBubbleView(View* anchor, |
owned_bubble_border_(bubble_border_), |
is_gesture_dragging_(false), |
mouse_actively_entered_(false) { |
+ DCHECK(delegate_); |
+ DCHECK(params_.parent_window); |
+ DCHECK(anchor_widget()); // Computed by BubbleDialogDelegateView(). |
bubble_border_->set_use_theme_background_color(!init_params.bg_color); |
bubble_border_->set_alignment(BubbleBorder::ALIGN_EDGE_TO_ANCHOR_EDGE); |
bubble_border_->set_paint_arrow(BubbleBorder::PAINT_NONE); |
+ set_parent_window(params_.parent_window); |
set_can_activate(params_.can_activate); |
- DCHECK(anchor_widget()); // Computed by BubbleDialogDelegateView(). |
set_notify_enter_exit_on_child(true); |
set_close_on_deactivate(init_params.close_on_deactivate); |
set_margins(gfx::Insets()); |
@@ -283,8 +269,6 @@ int TrayBubbleView::GetDialogButtons() const { |
void TrayBubbleView::OnBeforeBubbleWidgetInit(Widget::InitParams* params, |
Widget* bubble_widget) const { |
- if (delegate_) |
- delegate_->OnBeforeBubbleWidgetInit(anchor_widget(), bubble_widget, params); |
// Apply a WM-provided shadow (see ui/wm/core/). |
params->shadow_type = Widget::InitParams::SHADOW_TYPE_DROP; |
params->shadow_elevation = wm::ShadowElevation::LARGE; |