| Index: chrome/browser/ui/views/apps/chrome_native_app_window_views.cc
|
| diff --git a/chrome/browser/ui/views/apps/chrome_native_app_window_views.cc b/chrome/browser/ui/views/apps/chrome_native_app_window_views.cc
|
| index e2427294378e2a7b3f9ce8959d72b524b71565d7..51984e21680cf4c40519089e04bca395c2bf1072 100644
|
| --- a/chrome/browser/ui/views/apps/chrome_native_app_window_views.cc
|
| +++ b/chrome/browser/ui/views/apps/chrome_native_app_window_views.cc
|
| @@ -210,8 +210,22 @@ void ChromeNativeAppWindowViews::InitializePanelWindow(
|
| else if (preferred_size_.height() < kMinPanelHeight)
|
| preferred_size_.set_height(kMinPanelHeight);
|
|
|
| - params.bounds = gfx::Rect(preferred_size_);
|
| + // When a panel is not docked |initial_window_bounds|'s origin is reset to
|
| + // |kUnspecifiedPosition| to trigger placing it in the currently active
|
| + // target root window.
|
| + typedef AppWindow::BoundsSpecification BoundsSpecification;
|
| + if (create_params.state != ui::SHOW_STATE_DOCKED) {
|
| + initial_window_bounds.set_origin(
|
| + gfx::Point(BoundsSpecification::kUnspecifiedPosition,
|
| + BoundsSpecification::kUnspecifiedPosition));
|
| + }
|
| + params.bounds = gfx::Rect(initial_window_bounds.origin(), preferred_size_);
|
| OnBeforePanelWidgetInit(¶ms, widget());
|
| + bool position_specified =
|
| + params.bounds.x() != BoundsSpecification::kUnspecifiedPosition &&
|
| + params.bounds.y() != BoundsSpecification::kUnspecifiedPosition;
|
| + if (!position_specified)
|
| + params.bounds = gfx::Rect(preferred_size_);
|
| widget()->Init(params);
|
| widget()->set_focus_on_creation(create_params.focused);
|
| }
|
|
|