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

Side by Side Diff: ash/desktop_background/desktop_background_controller.cc

Issue 230613004: Block keyboard and mouse input when maximize mode is activated by accelerometer. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Use event targeter to block keyboard and mouse events. 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 (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/desktop_background/desktop_background_controller.h" 5 #include "ash/desktop_background/desktop_background_controller.h"
6 6
7 #include "ash/ash_switches.h" 7 #include "ash/ash_switches.h"
8 #include "ash/desktop_background/desktop_background_controller_observer.h" 8 #include "ash/desktop_background/desktop_background_controller_observer.h"
9 #include "ash/desktop_background/desktop_background_view.h" 9 #include "ash/desktop_background/desktop_background_view.h"
10 #include "ash/desktop_background/desktop_background_widget_controller.h" 10 #include "ash/desktop_background/desktop_background_widget_controller.h"
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 }; 154 };
155 155
156 DesktopBackgroundController::DesktopBackgroundController() 156 DesktopBackgroundController::DesktopBackgroundController()
157 : command_line_for_testing_(NULL), 157 : command_line_for_testing_(NULL),
158 locked_(false), 158 locked_(false),
159 desktop_background_mode_(BACKGROUND_NONE), 159 desktop_background_mode_(BACKGROUND_NONE),
160 current_default_wallpaper_resource_id_(-1), 160 current_default_wallpaper_resource_id_(-1),
161 weak_ptr_factory_(this), 161 weak_ptr_factory_(this),
162 wallpaper_reload_delay_(kWallpaperReloadDelayMs) { 162 wallpaper_reload_delay_(kWallpaperReloadDelayMs) {
163 Shell::GetInstance()->display_controller()->AddObserver(this); 163 Shell::GetInstance()->display_controller()->AddObserver(this);
164 Shell::GetInstance()->AddShellObserver(this);
164 } 165 }
165 166
166 DesktopBackgroundController::~DesktopBackgroundController() { 167 DesktopBackgroundController::~DesktopBackgroundController() {
167 CancelDefaultWallpaperLoader(); 168 CancelDefaultWallpaperLoader();
168 Shell::GetInstance()->display_controller()->RemoveObserver(this); 169 Shell::GetInstance()->display_controller()->RemoveObserver(this);
170 Shell::GetInstance()->RemoveShellObserver(this);
169 } 171 }
170 172
171 gfx::ImageSkia DesktopBackgroundController::GetWallpaper() const { 173 gfx::ImageSkia DesktopBackgroundController::GetWallpaper() const {
172 if (current_wallpaper_) 174 if (current_wallpaper_)
173 return current_wallpaper_->image(); 175 return current_wallpaper_->image();
174 return gfx::ImageSkia(); 176 return gfx::ImageSkia();
175 } 177 }
176 178
177 void DesktopBackgroundController::AddObserver( 179 void DesktopBackgroundController::AddObserver(
178 DesktopBackgroundControllerObserver* observer) { 180 DesktopBackgroundControllerObserver* observer) {
179 observers_.AddObserver(observer); 181 observers_.AddObserver(observer);
180 } 182 }
181 183
182 void DesktopBackgroundController::RemoveObserver( 184 void DesktopBackgroundController::RemoveObserver(
183 DesktopBackgroundControllerObserver* observer) { 185 DesktopBackgroundControllerObserver* observer) {
184 observers_.RemoveObserver(observer); 186 observers_.RemoveObserver(observer);
185 } 187 }
186 188
187 WallpaperLayout DesktopBackgroundController::GetWallpaperLayout() const { 189 WallpaperLayout DesktopBackgroundController::GetWallpaperLayout() const {
188 if (current_wallpaper_) 190 if (current_wallpaper_)
189 return current_wallpaper_->layout(); 191 return current_wallpaper_->layout();
190 return WALLPAPER_LAYOUT_CENTER_CROPPED; 192 return WALLPAPER_LAYOUT_CENTER_CROPPED;
191 } 193 }
192 194
193 void DesktopBackgroundController::OnRootWindowAdded(aura::Window* root_window) {
194 // The background hasn't been set yet.
195 if (desktop_background_mode_ == BACKGROUND_NONE)
196 return;
197
198 // Handle resolution change for "built-in" images.
199 gfx::Size max_display_size = GetMaxDisplaySizeInNative();
200 if (current_max_display_size_ != max_display_size) {
201 current_max_display_size_ = max_display_size;
202 if (desktop_background_mode_ == BACKGROUND_IMAGE &&
203 current_wallpaper_.get())
204 UpdateWallpaper();
205 }
206
207 InstallDesktopController(root_window);
208 }
209
210 bool DesktopBackgroundController::SetDefaultWallpaper(bool is_guest) { 195 bool DesktopBackgroundController::SetDefaultWallpaper(bool is_guest) {
211 VLOG(1) << "SetDefaultWallpaper: is_guest=" << is_guest; 196 VLOG(1) << "SetDefaultWallpaper: is_guest=" << is_guest;
212 const bool use_large = 197 const bool use_large =
213 GetAppropriateResolution() == WALLPAPER_RESOLUTION_LARGE; 198 GetAppropriateResolution() == WALLPAPER_RESOLUTION_LARGE;
214 199
215 base::FilePath file_path; 200 base::FilePath file_path;
216 WallpaperLayout file_layout = use_large ? WALLPAPER_LAYOUT_CENTER_CROPPED : 201 WallpaperLayout file_layout = use_large ? WALLPAPER_LAYOUT_CENTER_CROPPED :
217 WALLPAPER_LAYOUT_CENTER; 202 WALLPAPER_LAYOUT_CENTER;
218 int resource_id = use_large ? IDR_AURA_WALLPAPER_DEFAULT_LARGE : 203 int resource_id = use_large ? IDR_AURA_WALLPAPER_DEFAULT_LARGE :
219 IDR_AURA_WALLPAPER_DEFAULT_SMALL; 204 IDR_AURA_WALLPAPER_DEFAULT_SMALL;
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
320 current_wallpaper_.get()) { 305 current_wallpaper_.get()) {
321 timer_.Stop(); 306 timer_.Stop();
322 timer_.Start(FROM_HERE, 307 timer_.Start(FROM_HERE,
323 base::TimeDelta::FromMilliseconds(wallpaper_reload_delay_), 308 base::TimeDelta::FromMilliseconds(wallpaper_reload_delay_),
324 this, 309 this,
325 &DesktopBackgroundController::UpdateWallpaper); 310 &DesktopBackgroundController::UpdateWallpaper);
326 } 311 }
327 } 312 }
328 } 313 }
329 314
315 void DesktopBackgroundController::OnRootWindowAdded(aura::Window* root_window) {
316 // The background hasn't been set yet.
317 if (desktop_background_mode_ == BACKGROUND_NONE)
318 return;
319
320 // Handle resolution change for "built-in" images.
321 gfx::Size max_display_size = GetMaxDisplaySizeInNative();
322 if (current_max_display_size_ != max_display_size) {
323 current_max_display_size_ = max_display_size;
324 if (desktop_background_mode_ == BACKGROUND_IMAGE &&
325 current_wallpaper_.get())
326 UpdateWallpaper();
327 }
328
329 InstallDesktopController(root_window);
330 }
331
330 bool DesktopBackgroundController::DefaultWallpaperIsAlreadyLoadingOrLoaded( 332 bool DesktopBackgroundController::DefaultWallpaperIsAlreadyLoadingOrLoaded(
331 const base::FilePath& image_file, 333 const base::FilePath& image_file,
332 int image_resource_id) const { 334 int image_resource_id) const {
333 return (default_wallpaper_loader_.get() && 335 return (default_wallpaper_loader_.get() &&
334 !default_wallpaper_loader_->IsCanceled() && 336 !default_wallpaper_loader_->IsCanceled() &&
335 default_wallpaper_loader_->file_path() == image_file && 337 default_wallpaper_loader_->file_path() == image_file &&
336 default_wallpaper_loader_->resource_id() == image_resource_id) || 338 default_wallpaper_loader_->resource_id() == image_resource_id) ||
337 (current_wallpaper_.get() && 339 (current_wallpaper_.get() &&
338 current_default_wallpaper_path_ == image_file && 340 current_default_wallpaper_path_ == image_file &&
339 current_default_wallpaper_resource_id_ == image_resource_id); 341 current_default_wallpaper_resource_id_ == image_resource_id);
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
465 iter->rotation() == gfx::Display::ROTATE_270) { 467 iter->rotation() == gfx::Display::ROTATE_270) {
466 size_in_pixel = gfx::Size(size_in_pixel.height(), size_in_pixel.width()); 468 size_in_pixel = gfx::Size(size_in_pixel.height(), size_in_pixel.width());
467 } 469 }
468 width = std::max(size_in_pixel.width(), width); 470 width = std::max(size_in_pixel.width(), width);
469 height = std::max(size_in_pixel.height(), height); 471 height = std::max(size_in_pixel.height(), height);
470 } 472 }
471 return gfx::Size(width, height); 473 return gfx::Size(width, height);
472 } 474 }
473 475
474 } // namespace ash 476 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698