const gfx::Point& location,
int window_component,
aura::client::WindowMoveSource source)
- : initial_bounds_in_parent(window->bounds()),
+ : initial_state_type(wm::GetWindowState(window)->GetStateType()),
+ initial_bounds_in_parent(window->bounds()),
initial_location_in_parent(location),
initial_opacity(window->layer()->opacity()),
window_component(window_component),
is_resizable(bounds_change != WindowResizer::kBoundsChangeDirection_None),
source(source),
should_attach_to_shelf(window->type() == ui::wm::WINDOW_TYPE_PANEL &&
- wm::GetWindowState(window)->panel_attached()),
- window_resizer(NULL) {
+ wm::GetWindowState(window)->panel_attached()) {
wm::WindowState* window_state = wm::GetWindowState(window);
- if (window_state->IsNormalShowState() &&
+ if ((window_state->IsNormalOrSnapped() || window_state->IsDocked()) &&
window_state->HasRestoreBounds() &&
- window_component == HTCAPTION)
+ window_component == HTCAPTION) {
restore_bounds = window_state->GetRestoreBoundsInScreen();
+ }
}
DragDetails::~DragDetails() {