| Index: ash/accelerators/accelerator_controller_delegate_aura.cc
|
| diff --git a/ash/accelerators/accelerator_controller_delegate_aura.cc b/ash/accelerators/accelerator_controller_delegate_aura.cc
|
| index a909f89503d8fcc1d95f00d9896789da43f9d794..922ca451221778bbc8797f4eb5a38a1062d040de 100644
|
| --- a/ash/accelerators/accelerator_controller_delegate_aura.cc
|
| +++ b/ash/accelerators/accelerator_controller_delegate_aura.cc
|
| @@ -10,6 +10,7 @@
|
| #include <utility>
|
|
|
| #include "ash/accelerators/accelerator_commands_aura.h"
|
| +#include "ash/accelerators/debug_commands.h"
|
| #include "ash/common/accessibility_delegate.h"
|
| #include "ash/common/accessibility_types.h"
|
| #include "ash/common/ash_switches.h"
|
| @@ -27,7 +28,11 @@
|
| #include "ash/common/wm/wm_event.h"
|
| #include "ash/common/wm_shell.h"
|
| #include "ash/debug.h"
|
| +#include "ash/desktop_background/desktop_background_controller.h"
|
| +#include "ash/desktop_background/user_wallpaper_delegate.h"
|
| +#include "ash/display/display_manager.h"
|
| #include "ash/display/window_tree_host_manager.h"
|
| +#include "ash/host/ash_window_tree_host.h"
|
| #include "ash/magnifier/magnification_controller.h"
|
| #include "ash/magnifier/partial_magnification_controller.h"
|
| #include "ash/new_window_delegate.h"
|
| @@ -48,6 +53,8 @@
|
| #include "base/metrics/user_metrics.h"
|
| #include "base/strings/string_split.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| +#include "third_party/skia/include/core/SkColor.h"
|
| +#include "third_party/skia/include/core/SkPaint.h"
|
| #include "ui/base/accelerators/accelerator.h"
|
| #include "ui/base/l10n/l10n_util.h"
|
| #include "ui/compositor/layer.h"
|
| @@ -56,6 +63,8 @@
|
| #include "ui/display/screen.h"
|
| #include "ui/events/event.h"
|
| #include "ui/events/keycodes/keyboard_codes.h"
|
| +#include "ui/gfx/canvas.h"
|
| +#include "ui/gfx/image/image_skia.h"
|
| #include "ui/message_center/message_center.h"
|
| #include "ui/message_center/notification.h"
|
| #include "ui/message_center/notifier_settings.h"
|
| @@ -339,6 +348,50 @@ void HandleToggleAppList(const ui::Accelerator& accelerator) {
|
| WmShell::Get()->ToggleAppList();
|
| }
|
|
|
| +gfx::ImageSkia CreateWallpaperImage(SkColor fill, SkColor rect) {
|
| + // TODO(oshima): Consider adding a command line option to control
|
| + // wallpaper images for testing.
|
| + // The size is randomly picked.
|
| + gfx::Size image_size(1366, 768);
|
| + gfx::Canvas canvas(image_size, 1.0f, true);
|
| + canvas.DrawColor(fill);
|
| + SkPaint paint;
|
| + paint.setColor(rect);
|
| + paint.setStrokeWidth(10);
|
| + paint.setStyle(SkPaint::kStroke_Style);
|
| + paint.setXfermodeMode(SkXfermode::kSrcOver_Mode);
|
| + canvas.DrawRoundRect(gfx::Rect(image_size), 100, paint);
|
| + return gfx::ImageSkia(canvas.ExtractImageRep());
|
| +}
|
| +
|
| +void HandleToggleDesktopBackgroundMode() {
|
| + static int index = 0;
|
| + DesktopBackgroundController* desktop_background_controller =
|
| + Shell::GetInstance()->desktop_background_controller();
|
| + switch (++index % 4) {
|
| + case 0:
|
| + ash::Shell::GetInstance()
|
| + ->user_wallpaper_delegate()
|
| + ->InitializeWallpaper();
|
| + break;
|
| + case 1:
|
| + desktop_background_controller->SetWallpaperImage(
|
| + CreateWallpaperImage(SK_ColorRED, SK_ColorBLUE),
|
| + wallpaper::WALLPAPER_LAYOUT_STRETCH);
|
| + break;
|
| + case 2:
|
| + desktop_background_controller->SetWallpaperImage(
|
| + CreateWallpaperImage(SK_ColorBLUE, SK_ColorGREEN),
|
| + wallpaper::WALLPAPER_LAYOUT_CENTER);
|
| + break;
|
| + case 3:
|
| + desktop_background_controller->SetWallpaperImage(
|
| + CreateWallpaperImage(SK_ColorGREEN, SK_ColorRED),
|
| + wallpaper::WALLPAPER_LAYOUT_CENTER_CROPPED);
|
| + break;
|
| + }
|
| +}
|
| +
|
| bool CanHandleUnpin() {
|
| wm::WindowState* window_state = wm::GetActiveWindowState();
|
| return window_state && window_state->IsPinned();
|
| @@ -404,6 +457,12 @@ void AcceleratorControllerDelegateAura::SetScreenshotDelegate(
|
| bool AcceleratorControllerDelegateAura::HandlesAction(
|
| AcceleratorAction action) {
|
| switch (action) {
|
| + case DEBUG_TOGGLE_DESKTOP_BACKGROUND_MODE:
|
| + case DEBUG_TOGGLE_DEVICE_SCALE_FACTOR:
|
| + case DEBUG_TOGGLE_ROOT_WINDOW_FULL_SCREEN:
|
| + case DEBUG_TOGGLE_SHOW_DEBUG_BORDERS:
|
| + case DEBUG_TOGGLE_SHOW_FPS_COUNTER:
|
| + case DEBUG_TOGGLE_SHOW_PAINT_RECTS:
|
| case FOCUS_SHELF:
|
| case LAUNCH_APP_0:
|
| case LAUNCH_APP_1:
|
| @@ -438,6 +497,8 @@ bool AcceleratorControllerDelegateAura::HandlesAction(
|
| return true;
|
|
|
| #if defined(OS_CHROMEOS)
|
| + case DEBUG_ADD_REMOVE_DISPLAY:
|
| + case DEBUG_TOGGLE_UNIFIED_DESKTOP:
|
| case DISABLE_GPU_WATCHDOG:
|
| case LOCK_PRESSED:
|
| case LOCK_RELEASED:
|
| @@ -465,6 +526,13 @@ bool AcceleratorControllerDelegateAura::CanPerformAction(
|
| const ui::Accelerator& accelerator,
|
| const ui::Accelerator& previous_accelerator) {
|
| switch (action) {
|
| + case DEBUG_TOGGLE_DESKTOP_BACKGROUND_MODE:
|
| + case DEBUG_TOGGLE_DEVICE_SCALE_FACTOR:
|
| + case DEBUG_TOGGLE_ROOT_WINDOW_FULL_SCREEN:
|
| + case DEBUG_TOGGLE_SHOW_DEBUG_BORDERS:
|
| + case DEBUG_TOGGLE_SHOW_FPS_COUNTER:
|
| + case DEBUG_TOGGLE_SHOW_PAINT_RECTS:
|
| + return debug::DebugAcceleratorsEnabled();
|
| case MAGNIFY_SCREEN_ZOOM_IN:
|
| case MAGNIFY_SCREEN_ZOOM_OUT:
|
| return CanHandleMagnifyScreen();
|
| @@ -507,6 +575,10 @@ bool AcceleratorControllerDelegateAura::CanPerformAction(
|
| return true;
|
|
|
| #if defined(OS_CHROMEOS)
|
| + case DEBUG_ADD_REMOVE_DISPLAY:
|
| + case DEBUG_TOGGLE_UNIFIED_DESKTOP:
|
| + return debug::DebugAcceleratorsEnabled();
|
| +
|
| case SWAP_PRIMARY_DISPLAY:
|
| return display::Screen::GetScreen()->GetNumDisplays() > 1;
|
| case TOUCH_HUD_CLEAR:
|
| @@ -538,6 +610,24 @@ void AcceleratorControllerDelegateAura::PerformAction(
|
| AcceleratorAction action,
|
| const ui::Accelerator& accelerator) {
|
| switch (action) {
|
| + case DEBUG_TOGGLE_DESKTOP_BACKGROUND_MODE:
|
| + HandleToggleDesktopBackgroundMode();
|
| + break;
|
| + case DEBUG_TOGGLE_DEVICE_SCALE_FACTOR:
|
| + Shell::GetInstance()->display_manager()->ToggleDisplayScaleFactor();
|
| + break;
|
| + case DEBUG_TOGGLE_ROOT_WINDOW_FULL_SCREEN:
|
| + Shell::GetPrimaryRootWindowController()->ash_host()->ToggleFullScreen();
|
| + break;
|
| + case DEBUG_TOGGLE_SHOW_DEBUG_BORDERS:
|
| + debug::ToggleShowDebugBorders();
|
| + break;
|
| + case DEBUG_TOGGLE_SHOW_FPS_COUNTER:
|
| + debug::ToggleShowFpsCounter();
|
| + break;
|
| + case DEBUG_TOGGLE_SHOW_PAINT_RECTS:
|
| + debug::ToggleShowPaintRects();
|
| + break;
|
| case FOCUS_SHELF:
|
| HandleFocusShelf();
|
| break;
|
| @@ -632,6 +722,13 @@ void AcceleratorControllerDelegateAura::PerformAction(
|
| accelerators::Unpin();
|
| break;
|
| #if defined(OS_CHROMEOS)
|
| + case DEBUG_ADD_REMOVE_DISPLAY:
|
| + Shell::GetInstance()->display_manager()->AddRemoveDisplay();
|
| + break;
|
| + case DEBUG_TOGGLE_UNIFIED_DESKTOP:
|
| + Shell::GetInstance()->display_manager()->SetUnifiedDesktopEnabled(
|
| + !Shell::GetInstance()->display_manager()->unified_desktop_enabled());
|
| + break;
|
| case DISABLE_GPU_WATCHDOG:
|
| Shell::GetInstance()->gpu_support()->DisableGpuWatchdog();
|
| break;
|
|
|