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

Side by Side Diff: ash/shell.cc

Issue 24499002: Reload wallpaper when display configuration changes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 2 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/shell.h" 5 #include "ash/shell.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 9
10 #include "ash/accelerators/accelerator_controller.h" 10 #include "ash/accelerators/accelerator_controller.h"
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 #include "ash/system/chromeos/power/power_status.h" 121 #include "ash/system/chromeos/power/power_status.h"
122 #endif // defined(OS_CHROMEOS) 122 #endif // defined(OS_CHROMEOS)
123 123
124 namespace ash { 124 namespace ash {
125 125
126 namespace { 126 namespace {
127 127
128 using aura::Window; 128 using aura::Window;
129 using views::Widget; 129 using views::Widget;
130 130
131 // This dummy class is used for shell unit tests. We dont have chrome delegate
132 // in these tests.
133 class DummyUserWallpaperDelegate : public UserWallpaperDelegate {
134 public:
135 DummyUserWallpaperDelegate() {}
136
137 virtual ~DummyUserWallpaperDelegate() {}
138
139 virtual int GetAnimationType() OVERRIDE {
140 return views::corewm::WINDOW_VISIBILITY_ANIMATION_TYPE_FADE;
141 }
142
143 virtual bool ShouldShowInitialAnimation() OVERRIDE {
144 return false;
145 }
146
147 virtual void UpdateWallpaper() OVERRIDE {
148 }
149
150 virtual void InitializeWallpaper() OVERRIDE {
151 ash::Shell::GetInstance()->desktop_background_controller()->
152 CreateEmptyWallpaper();
153 }
154
155 virtual void OpenSetWallpaperPage() OVERRIDE {
156 }
157
158 virtual bool CanOpenSetWallpaperPage() OVERRIDE {
159 return false;
160 }
161
162 virtual void OnWallpaperAnimationFinished() OVERRIDE {
163 }
164
165 virtual void OnWallpaperBootAnimationFinished() OVERRIDE {
166 }
167
168 private:
169 DISALLOW_COPY_AND_ASSIGN(DummyUserWallpaperDelegate);
170 };
171
172 // A Corewm VisibilityController subclass that calls the Ash animation routine 131 // A Corewm VisibilityController subclass that calls the Ash animation routine
173 // so we can pick up our extended animations. See ash/wm/window_animations.h. 132 // so we can pick up our extended animations. See ash/wm/window_animations.h.
174 class AshVisibilityController : public views::corewm::VisibilityController { 133 class AshVisibilityController : public views::corewm::VisibilityController {
175 public: 134 public:
176 AshVisibilityController() {} 135 AshVisibilityController() {}
177 virtual ~AshVisibilityController() {} 136 virtual ~AshVisibilityController() {}
178 137
179 private: 138 private:
180 // Overridden from views::corewm::VisibilityController: 139 // Overridden from views::corewm::VisibilityController:
181 virtual bool CallAnimateOnChildWindowVisibilityChanged( 140 virtual bool CallAnimateOnChildWindowVisibilityChanged(
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
302 visibility_controller_.reset(); 261 visibility_controller_.reset();
303 launcher_delegate_.reset(); 262 launcher_delegate_.reset();
304 launcher_model_.reset(); 263 launcher_model_.reset();
305 video_detector_.reset(); 264 video_detector_.reset();
306 265
307 power_button_controller_.reset(); 266 power_button_controller_.reset();
308 lock_state_controller_.reset(); 267 lock_state_controller_.reset();
309 mru_window_tracker_.reset(); 268 mru_window_tracker_.reset();
310 269
311 resolution_notification_controller_.reset(); 270 resolution_notification_controller_.reset();
271 desktop_background_controller_.reset();
312 272
313 // This also deletes all RootWindows. Note that we invoke Shutdown() on 273 // This also deletes all RootWindows. Note that we invoke Shutdown() on
314 // DisplayController before resetting |display_controller_|, since destruction 274 // DisplayController before resetting |display_controller_|, since destruction
315 // of its owned RootWindowControllers relies on the value. 275 // of its owned RootWindowControllers relies on the value.
316 display_controller_->Shutdown(); 276 display_controller_->Shutdown();
317 display_controller_.reset(); 277 display_controller_.reset();
318 screen_position_controller_.reset(); 278 screen_position_controller_.reset();
319 279
320 #if defined(OS_CHROMEOS) && defined(USE_X11) 280 #if defined(OS_CHROMEOS) && defined(USE_X11)
321 if (display_change_observer_) 281 if (display_change_observer_)
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
562 522
563 tooltip_controller_.reset(new views::corewm::TooltipController( 523 tooltip_controller_.reset(new views::corewm::TooltipController(
564 gfx::SCREEN_TYPE_ALTERNATE)); 524 gfx::SCREEN_TYPE_ALTERNATE));
565 AddPreTargetHandler(tooltip_controller_.get()); 525 AddPreTargetHandler(tooltip_controller_.get());
566 526
567 event_client_.reset(new internal::EventClientImpl); 527 event_client_.reset(new internal::EventClientImpl);
568 528
569 // This controller needs to be set before SetupManagedWindowMode. 529 // This controller needs to be set before SetupManagedWindowMode.
570 desktop_background_controller_.reset(new DesktopBackgroundController()); 530 desktop_background_controller_.reset(new DesktopBackgroundController());
571 user_wallpaper_delegate_.reset(delegate_->CreateUserWallpaperDelegate()); 531 user_wallpaper_delegate_.reset(delegate_->CreateUserWallpaperDelegate());
572 if (!user_wallpaper_delegate_)
573 user_wallpaper_delegate_.reset(new DummyUserWallpaperDelegate());
574 532
575 // StatusAreaWidget uses Shell's CapsLockDelegate. 533 // StatusAreaWidget uses Shell's CapsLockDelegate.
576 caps_lock_delegate_.reset(delegate_->CreateCapsLockDelegate()); 534 caps_lock_delegate_.reset(delegate_->CreateCapsLockDelegate());
577 535
578 session_state_delegate_.reset(delegate_->CreateSessionStateDelegate()); 536 session_state_delegate_.reset(delegate_->CreateSessionStateDelegate());
579 537
580 if (!command_line->HasSwitch(views::corewm::switches::kNoDropShadows)) { 538 if (!command_line->HasSwitch(views::corewm::switches::kNoDropShadows)) {
581 resize_shadow_controller_.reset(new internal::ResizeShadowController()); 539 resize_shadow_controller_.reset(new internal::ResizeShadowController());
582 shadow_controller_.reset( 540 shadow_controller_.reset(
583 new views::corewm::ShadowController(activation_client_)); 541 new views::corewm::ShadowController(activation_client_));
(...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after
963 //////////////////////////////////////////////////////////////////////////////// 921 ////////////////////////////////////////////////////////////////////////////////
964 // Shell, aura::client::ActivationChangeObserver implementation: 922 // Shell, aura::client::ActivationChangeObserver implementation:
965 923
966 void Shell::OnWindowActivated(aura::Window* gained_active, 924 void Shell::OnWindowActivated(aura::Window* gained_active,
967 aura::Window* lost_active) { 925 aura::Window* lost_active) {
968 if (gained_active) 926 if (gained_active)
969 target_root_window_ = gained_active->GetRootWindow(); 927 target_root_window_ = gained_active->GetRootWindow();
970 } 928 }
971 929
972 } // namespace ash 930 } // namespace ash
OLDNEW
« no previous file with comments | « ash/desktop_background/desktop_background_controller_unittest.cc ('k') | ash/shell/shell_delegate_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698