Chromium Code Reviews| Index: athena/extensions/athena_native_app_window_views.cc |
| diff --git a/athena/extensions/athena_native_app_window_views.cc b/athena/extensions/athena_native_app_window_views.cc |
| index 866a9c4ce78fd12a79dc2eab5f091d80afba5bf3..5b18125ce483223add717a96a8a034bb6d7c75f1 100644 |
| --- a/athena/extensions/athena_native_app_window_views.cc |
| +++ b/athena/extensions/athena_native_app_window_views.cc |
| @@ -10,4 +10,46 @@ views::WebView* AthenaNativeAppWindowViews::GetWebView() { |
| return web_view(); |
| } |
| +// Specialized initialization of the AppWindowViews specific to Athena. Starts |
| +// the window maximized by default unless the create_params specifies a |
| +// maximum size, in which case the window will be centered. |
| +void AthenaNativeAppWindowViews::InitializeWindow( |
|
oshima
2014/10/22 20:03:21
I think we need to handle this in different way. L
|
| + extensions::AppWindow* app_window, |
| + const extensions::AppWindow::CreateParams& create_params) { |
| + |
| + views::Widget::InitParams init_params(views::Widget::InitParams::TYPE_WINDOW); |
| + |
| + // Use passed 'create_params' to initialize 'init_params' |
| + init_params.delegate = this; |
| + init_params.remove_standard_frame = IsFrameless(); |
| + init_params.use_system_default_icon = true; |
| + init_params.keep_on_top = create_params.always_on_top; |
| + |
| + init_params.visible_on_all_workspaces = create_params |
| + .visible_on_all_workspaces; |
| + if (create_params.alpha_enabled) |
| + init_params.opacity = views::Widget::InitParams::TRANSLUCENT_WINDOW; |
| + |
| + // Only maximize the window if the content doesn't specify a maximum size, |
| + // otherwise center the window in the screen with the given bounds. |
| + bool need_to_center = false; |
| + if (create_params.content_spec.maximum_size.IsEmpty()) { |
| + init_params.show_state = ui::SHOW_STATE_MAXIMIZED; |
| + } else { |
| + init_params.show_state = create_params.state; |
| + init_params.bounds = create_params.content_spec.bounds; |
| + need_to_center = true; |
| + } |
| + |
| + // Initialize and create the widget |
| + views::Widget* widget = this->widget(); |
| + widget->Init(init_params); |
| + |
| + // The following should be inside views::Widget::Init(), I think! |
| + if (need_to_center) { |
| + widget->CenterWindow( |
| + create_params.GetInitialWindowBounds(gfx::Insets()).size()); |
| + } |
| +} |
| + |
| } // namespace athena |