Index: ui/views/widget/widget.cc |
diff --git a/ui/views/widget/widget.cc b/ui/views/widget/widget.cc |
index 627e1cd17c5d2b792c988e985f78dc5c6bf6121b..644d1b91052f2db760a9c21f1f9404d68b44ab05 100644 |
--- a/ui/views/widget/widget.cc |
+++ b/ui/views/widget/widget.cc |
@@ -50,22 +50,12 @@ void BuildRootLayers(View* view, std::vector<ui::Layer*>* layers) { |
// Create a native widget implementation. |
// First, use the supplied one if non-NULL. |
-// Second, ask the delegate. |
// Finally, make a default one. |
NativeWidget* CreateNativeWidget(NativeWidget* native_widget, |
- internal::NativeWidgetDelegate* delegate, |
- Widget::InitParams::Type type, |
- gfx::NativeView parent, |
- gfx::NativeView context) { |
+ internal::NativeWidgetDelegate* delegate) { |
if (!native_widget) { |
- if (ViewsDelegate::views_delegate) { |
- native_widget = ViewsDelegate::views_delegate->CreateNativeWidget( |
- type, delegate, parent, context); |
- } |
- if (!native_widget) { |
- native_widget = |
- internal::NativeWidgetPrivate::CreateNativeWidget(delegate); |
- } |
+ native_widget = |
+ internal::NativeWidgetPrivate::CreateNativeWidget(delegate); |
} |
return native_widget; |
} |
@@ -231,7 +221,12 @@ Widget::~Widget() { |
// static |
Widget* Widget::CreateWindow(WidgetDelegate* delegate) { |
- return CreateWindowWithParentAndBounds(delegate, NULL, gfx::Rect()); |
+ Widget* widget = new Widget; |
+ Widget::InitParams params; |
+ params.delegate = delegate; |
+ params.top_level = true; |
+ widget->Init(params); |
+ return widget; |
} |
// static |
@@ -339,7 +334,11 @@ bool Widget::RequiresNonClientView(InitParams::Type type) { |
type == InitParams::TYPE_BUBBLE; |
} |
-void Widget::Init(const InitParams& params) { |
+void Widget::Init(const InitParams& in_params) { |
+ InitParams params = in_params; |
+ if (ViewsDelegate::views_delegate) |
+ ViewsDelegate::views_delegate->OnBeforeWidgetInit(¶ms, this); |
+ |
is_top_level_ = params.top_level || |
(!params.child && |
params.type != InitParams::TYPE_CONTROL && |
@@ -347,9 +346,8 @@ void Widget::Init(const InitParams& params) { |
widget_delegate_ = params.delegate ? |
params.delegate : new DefaultWidgetDelegate(this, params); |
ownership_ = params.ownership; |
- native_widget_ = CreateNativeWidget( |
- params.native_widget, this, params.type, params.parent, params.context)-> |
- AsNativeWidgetPrivate(); |
+ native_widget_ = CreateNativeWidget(params.native_widget, this)-> |
+ AsNativeWidgetPrivate(); |
GetRootView(); |
default_theme_provider_.reset(new DefaultThemeProvider); |
if (params.type == InitParams::TYPE_MENU) { |