| Index: ash/common/wm/maximize_mode/maximize_mode_window_state.cc
|
| diff --git a/ash/common/wm/maximize_mode/maximize_mode_window_state.cc b/ash/common/wm/maximize_mode/maximize_mode_window_state.cc
|
| index 307a73036c817714f0176949c6661593a84b552f..7dc4030c21e177985d06be6d5c2d58608c751b08 100644
|
| --- a/ash/common/wm/maximize_mode/maximize_mode_window_state.cc
|
| +++ b/ash/common/wm/maximize_mode/maximize_mode_window_state.cc
|
| @@ -142,6 +142,10 @@ void MaximizeModeWindowState::OnWMEvent(wm::WindowState* window_state,
|
| if (!WmShell::Get()->IsPinned())
|
| UpdateWindow(window_state, wm::WINDOW_STATE_TYPE_PINNED, true);
|
| break;
|
| + case wm::WM_EVENT_TRUSTED_PIN:
|
| + if (!WmShell::Get()->IsPinned())
|
| + UpdateWindow(window_state, wm::WINDOW_STATE_TYPE_TRUSTED_PINNED, true);
|
| + break;
|
| case wm::WM_EVENT_TOGGLE_MAXIMIZE_CAPTION:
|
| case wm::WM_EVENT_TOGGLE_VERTICAL_MAXIMIZE:
|
| case wm::WM_EVENT_TOGGLE_HORIZONTAL_MAXIMIZE:
|
| @@ -176,7 +180,8 @@ void MaximizeModeWindowState::OnWMEvent(wm::WindowState* window_state,
|
| window_state->SetRestoreBoundsInParent(bounds_in_parent);
|
| } else if (current_state_type_ != wm::WINDOW_STATE_TYPE_MINIMIZED &&
|
| current_state_type_ != wm::WINDOW_STATE_TYPE_FULLSCREEN &&
|
| - current_state_type_ != wm::WINDOW_STATE_TYPE_PINNED) {
|
| + current_state_type_ != wm::WINDOW_STATE_TYPE_PINNED &&
|
| + current_state_type_ != wm::WINDOW_STATE_TYPE_TRUSTED_PINNED) {
|
| // In all other cases (except for minimized windows) we respect the
|
| // requested bounds and center it to a fully visible area on the screen.
|
| gfx::Rect bounds_in_parent =
|
| @@ -232,7 +237,8 @@ void MaximizeModeWindowState::AttachState(
|
| if (current_state_type_ != wm::WINDOW_STATE_TYPE_MAXIMIZED &&
|
| current_state_type_ != wm::WINDOW_STATE_TYPE_MINIMIZED &&
|
| current_state_type_ != wm::WINDOW_STATE_TYPE_FULLSCREEN &&
|
| - current_state_type_ != wm::WINDOW_STATE_TYPE_PINNED) {
|
| + current_state_type_ != wm::WINDOW_STATE_TYPE_PINNED &&
|
| + current_state_type_ != wm::WINDOW_STATE_TYPE_TRUSTED_PINNED) {
|
| UpdateWindow(window_state, GetMaximizedOrCenteredWindowType(window_state),
|
| true);
|
| }
|
| @@ -253,6 +259,7 @@ void MaximizeModeWindowState::UpdateWindow(wm::WindowState* window_state,
|
| DCHECK(target_state == wm::WINDOW_STATE_TYPE_MINIMIZED ||
|
| target_state == wm::WINDOW_STATE_TYPE_MAXIMIZED ||
|
| target_state == wm::WINDOW_STATE_TYPE_PINNED ||
|
| + target_state == wm::WINDOW_STATE_TYPE_TRUSTED_PINNED ||
|
| (target_state == wm::WINDOW_STATE_TYPE_NORMAL &&
|
| !window_state->CanMaximize()) ||
|
| target_state == wm::WINDOW_STATE_TYPE_FULLSCREEN);
|
| @@ -283,7 +290,9 @@ void MaximizeModeWindowState::UpdateWindow(wm::WindowState* window_state,
|
| window_state->NotifyPostStateTypeChange(old_state_type);
|
|
|
| if (old_state_type == wm::WINDOW_STATE_TYPE_PINNED ||
|
| - target_state == wm::WINDOW_STATE_TYPE_PINNED) {
|
| + target_state == wm::WINDOW_STATE_TYPE_PINNED ||
|
| + old_state_type == wm::WINDOW_STATE_TYPE_TRUSTED_PINNED ||
|
| + target_state == wm::WINDOW_STATE_TYPE_TRUSTED_PINNED) {
|
| WmShell::Get()->SetPinnedWindow(window_state->window());
|
| }
|
|
|
|
|