Index: ash/wm/default_state.cc |
diff --git a/ash/wm/default_state.cc b/ash/wm/default_state.cc |
index 0fd3070dcfcb39ec6b4d369c4619ff16ecc87f1e..6f6d0ac2fd8d50fa5c026d8693bafd08da44f7f4 100644 |
--- a/ash/wm/default_state.cc |
+++ b/ash/wm/default_state.cc |
@@ -511,10 +511,17 @@ void DefaultState::UpdateBoundsFromState(WindowState* window_state, |
case WINDOW_STATE_TYPE_NORMAL: { |
gfx::Rect work_area_in_parent = |
ScreenUtil::GetDisplayWorkAreaBoundsInParent(window_state->window()); |
- if (window_state->HasRestoreBounds()) |
+ if (window_state->HasRestoreBounds()) { |
bounds_in_parent = window_state->GetRestoreBoundsInParent(); |
- else |
+ if (previous_state_type == WINDOW_STATE_TYPE_MAXIMIZED && |
+ bounds_in_parent == work_area_in_parent) { |
+ // Inset the bounds slightly so that they are not exactly same as |
+ // work area bounds and it is easier to resize the window. |
+ bounds_in_parent.Inset(10, 10, 10, 10); |
pkotwicz
2014/07/31 03:39:57
|bounds_in_parent| might be bigger than |work_area
varkha
2014/08/01 21:00:24
I think checking for a larger size should solve it
|
+ } |
+ } else { |
bounds_in_parent = window->bounds(); |
+ } |
// Make sure that part of the window is always visible. |
AdjustBoundsToEnsureMinimumWindowVisibility( |
work_area_in_parent, &bounds_in_parent); |