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

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

Issue 198413003: Enable immersive fullscreen on Windows Ash. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 9 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/custom_frame_view_ash.h" 5 #include "ash/wm/custom_frame_view_ash.h"
6 6
7 #include "ash/ash_switches.h" 7 #include "ash/ash_switches.h"
8 #include "ash/wm/caption_buttons/frame_caption_button_container_view.h" 8 #include "ash/wm/caption_buttons/frame_caption_button_container_view.h"
9 #include "ash/wm/caption_buttons/frame_maximize_button.h" 9 #include "ash/wm/caption_buttons/frame_maximize_button.h"
10 #include "ash/wm/caption_buttons/frame_maximize_button_observer.h" 10 #include "ash/wm/caption_buttons/frame_maximize_button_observer.h"
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 // windows. 48 // windows.
49 class CustomFrameViewAshWindowStateDelegate 49 class CustomFrameViewAshWindowStateDelegate
50 : public ash::wm::WindowStateDelegate, 50 : public ash::wm::WindowStateDelegate,
51 public ash::wm::WindowStateObserver, 51 public ash::wm::WindowStateObserver,
52 public aura::WindowObserver { 52 public aura::WindowObserver {
53 public: 53 public:
54 CustomFrameViewAshWindowStateDelegate( 54 CustomFrameViewAshWindowStateDelegate(
55 ash::wm::WindowState* window_state, 55 ash::wm::WindowState* window_state,
56 ash::CustomFrameViewAsh* custom_frame_view) 56 ash::CustomFrameViewAsh* custom_frame_view)
57 : window_state_(NULL) { 57 : window_state_(NULL) {
58 #if defined(OS_CHROMEOS)
59 // TODO(pkotwicz): Investigate if immersive fullscreen can be enabled for
60 // Windows Ash.
61 if (ash::switches::UseImmersiveFullscreenForAllWindows()) { 58 if (ash::switches::UseImmersiveFullscreenForAllWindows()) {
62 immersive_fullscreen_controller_.reset( 59 immersive_fullscreen_controller_.reset(
63 new ash::ImmersiveFullscreenController); 60 new ash::ImmersiveFullscreenController);
64 custom_frame_view->InitImmersiveFullscreenControllerForView( 61 custom_frame_view->InitImmersiveFullscreenControllerForView(
65 immersive_fullscreen_controller_.get()); 62 immersive_fullscreen_controller_.get());
66 63
67 // Add a window state observer to exit fullscreen properly in case 64 // Add a window state observer to exit fullscreen properly in case
68 // fullscreen is exited without going through 65 // fullscreen is exited without going through
69 // WindowState::ToggleFullscreen(). This is the case when exiting 66 // WindowState::ToggleFullscreen(). This is the case when exiting
70 // immersive fullscreen via the "Restore" window control. 67 // immersive fullscreen via the "Restore" window control.
71 // TODO(pkotwicz): This is a hack. Remove ASAP. http://crbug.com/319048 68 // TODO(pkotwicz): This is a hack. Remove ASAP. http://crbug.com/319048
72 window_state_ = window_state; 69 window_state_ = window_state;
73 window_state_->AddObserver(this); 70 window_state_->AddObserver(this);
74 window_state_->window()->AddObserver(this); 71 window_state_->window()->AddObserver(this);
75 } 72 }
76 #endif
77 } 73 }
78 virtual ~CustomFrameViewAshWindowStateDelegate() { 74 virtual ~CustomFrameViewAshWindowStateDelegate() {
79 if (window_state_) { 75 if (window_state_) {
80 window_state_->RemoveObserver(this); 76 window_state_->RemoveObserver(this);
81 window_state_->window()->RemoveObserver(this); 77 window_state_->window()->RemoveObserver(this);
82 } 78 }
83 } 79 }
84 private: 80 private:
85 // Overridden from ash::wm::WindowStateDelegate: 81 // Overridden from ash::wm::WindowStateDelegate:
86 virtual bool ToggleFullscreen(ash::wm::WindowState* window_state) OVERRIDE { 82 virtual bool ToggleFullscreen(ash::wm::WindowState* window_state) OVERRIDE {
(...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after
511 } 507 }
512 508
513 //////////////////////////////////////////////////////////////////////////////// 509 ////////////////////////////////////////////////////////////////////////////////
514 // CustomFrameViewAsh, private: 510 // CustomFrameViewAsh, private:
515 511
516 int CustomFrameViewAsh::NonClientTopBorderHeight() const { 512 int CustomFrameViewAsh::NonClientTopBorderHeight() const {
517 return frame_->IsFullscreen() ? 0 : header_view_->GetPreferredHeight(); 513 return frame_->IsFullscreen() ? 0 : header_view_->GetPreferredHeight();
518 } 514 }
519 515
520 } // namespace ash 516 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698