Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(406)

Side by Side Diff: ash/wm/default_state.cc

Issue 247363005: Fullscreen/immersive mode is allowed in touch view mode, the shelf gets hidden and an edge swipe br… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ash/wm/default_state.h" 5 #include "ash/wm/default_state.h"
6 6
7 #include "ash/display/display_controller.h" 7 #include "ash/display/display_controller.h"
8 #include "ash/screen_util.h" 8 #include "ash/screen_util.h"
9 #include "ash/shell.h" 9 #include "ash/shell.h"
10 #include "ash/shell_window_ids.h" 10 #include "ash/shell_window_ids.h"
11 #include "ash/wm/coordinate_conversion.h" 11 #include "ash/wm/coordinate_conversion.h"
12 #include "ash/wm/window_animations.h" 12 #include "ash/wm/window_animations.h"
13 #include "ash/wm/window_state.h" 13 #include "ash/wm/window_state.h"
14 #include "ash/wm/window_state_delegate.h" 14 #include "ash/wm/window_state_delegate.h"
15 #include "ash/wm/window_state_util.h"
15 #include "ash/wm/window_util.h" 16 #include "ash/wm/window_util.h"
16 #include "ash/wm/wm_event.h" 17 #include "ash/wm/wm_event.h"
17 #include "ash/wm/workspace/workspace_window_resizer.h" 18 #include "ash/wm/workspace/workspace_window_resizer.h"
18 #include "ui/aura/client/aura_constants.h" 19 #include "ui/aura/client/aura_constants.h"
19 #include "ui/aura/window.h" 20 #include "ui/aura/window.h"
20 #include "ui/aura/window_delegate.h" 21 #include "ui/aura/window_delegate.h"
21 #include "ui/gfx/display.h" 22 #include "ui/gfx/display.h"
22 #include "ui/gfx/rect.h" 23 #include "ui/gfx/rect.h"
23 24
24 namespace ash { 25 namespace ash {
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 // The restore logic prevents a window from being restored to bounds 252 // The restore logic prevents a window from being restored to bounds
252 // which match the workspace bounds exactly so it is necessary to set 253 // which match the workspace bounds exactly so it is necessary to set
253 // the bounds again below. 254 // the bounds again below.
254 } 255 }
255 256
256 window_state->SetRestoreBoundsInParent(restore_bounds); 257 window_state->SetRestoreBoundsInParent(restore_bounds);
257 window->SetBounds(new_bounds); 258 window->SetBounds(new_bounds);
258 } 259 }
259 return true; 260 return true;
260 } 261 }
261 case WM_EVENT_TOGGLE_FULLSCREEN: { 262 case WM_EVENT_TOGGLE_FULLSCREEN:
262 // Window which cannot be maximized should not be fullscreened. 263 ToggleFullScreen(window_state, window_state->delegate());
263 // It can, however, be restored if it was fullscreened.
264 bool is_fullscreen = window_state->IsFullscreen();
265 if (!is_fullscreen && !window_state->CanMaximize())
266 return true;
267 if (window_state->delegate() &&
268 window_state->delegate()->ToggleFullscreen(window_state)) {
269 return true;
270 }
271 if (is_fullscreen) {
272 window_state->Restore();
273 } else {
274 //
275 window_state->window()->SetProperty(aura::client::kShowStateKey,
276 ui::SHOW_STATE_FULLSCREEN);
277 }
278 return true; 264 return true;
279 }
280 case WM_EVENT_CENTER: 265 case WM_EVENT_CENTER:
281 CenterWindow(window_state); 266 CenterWindow(window_state);
282 return true; 267 return true;
283 case WM_EVENT_NORMAL: 268 case WM_EVENT_NORMAL:
284 case WM_EVENT_MAXIMIZE: 269 case WM_EVENT_MAXIMIZE:
285 case WM_EVENT_MINIMIZE: 270 case WM_EVENT_MINIMIZE:
286 case WM_EVENT_FULLSCREEN: 271 case WM_EVENT_FULLSCREEN:
287 case WM_EVENT_SNAP_LEFT: 272 case WM_EVENT_SNAP_LEFT:
288 case WM_EVENT_SNAP_RIGHT: 273 case WM_EVENT_SNAP_RIGHT:
289 case WM_EVENT_SET_BOUNDS: 274 case WM_EVENT_SET_BOUNDS:
(...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after
597 ScreenUtil::GetDisplayWorkAreaBoundsInParent(window); 582 ScreenUtil::GetDisplayWorkAreaBoundsInParent(window);
598 center_in_parent.ClampToCenteredSize(window->bounds().size()); 583 center_in_parent.ClampToCenteredSize(window->bounds().size());
599 window_state->SetBoundsDirectAnimated(center_in_parent); 584 window_state->SetBoundsDirectAnimated(center_in_parent);
600 } 585 }
601 // Centering window is treated as if a user moved and resized the window. 586 // Centering window is treated as if a user moved and resized the window.
602 window_state->set_bounds_changed_by_user(true); 587 window_state->set_bounds_changed_by_user(true);
603 } 588 }
604 589
605 } // namespace wm 590 } // namespace wm
606 } // namespace ash 591 } // namespace ash
OLDNEW
« no previous file with comments | « ash/shelf/shelf_layout_manager_unittest.cc ('k') | ash/wm/maximize_mode/maximize_mode_window_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698