| Index: ui/views/window/dialog_delegate.cc
|
| diff --git a/ui/views/window/dialog_delegate.cc b/ui/views/window/dialog_delegate.cc
|
| index aabfa6d15e85febe5a1269d23f4dc0c701a01bdb..6c69b35443307685382fe77d81acc8727879c9b6 100644
|
| --- a/ui/views/window/dialog_delegate.cc
|
| +++ b/ui/views/window/dialog_delegate.cc
|
| @@ -23,20 +23,24 @@ DialogDelegate::~DialogDelegate() {
|
| }
|
|
|
| // static
|
| -Widget* DialogDelegate::CreateDialogWidget(DialogDelegate* dialog,
|
| +Widget* DialogDelegate::CreateDialogWidget(WidgetDelegate* delegate,
|
| gfx::NativeView context,
|
| gfx::NativeView parent) {
|
| views::Widget* widget = new views::Widget;
|
| views::Widget::InitParams params;
|
| - params.delegate = dialog;
|
| + params.delegate = delegate;
|
| + DialogDelegate* dialog = delegate->AsDialogDelegate();
|
| if (!dialog || dialog->UseNewStyleForThisDialog()) {
|
| params.opacity = Widget::InitParams::TRANSLUCENT_WINDOW;
|
| params.remove_standard_frame = true;
|
| + // The bubble frame includes its own shadow; remove any native shadowing.
|
| + params.shadow_type = views::Widget::InitParams::SHADOW_TYPE_NONE;
|
| }
|
| params.context = context;
|
| params.parent = parent;
|
| - // TODO(msw): Add a matching shadow type and remove the bubble frame border?
|
| - params.shadow_type = views::Widget::InitParams::SHADOW_TYPE_NONE;
|
| + // Web-modal (ui::MODAL_TYPE_CHILD) dialogs with parents are marked as child
|
| + // widgets to prevent top-level window behavior (independent movement, etc).
|
| + params.child = parent && (delegate->GetModalType() == ui::MODAL_TYPE_CHILD);
|
| widget->Init(params);
|
| return widget;
|
| }
|
|
|