Index: ash/accelerators/accelerator_controller.cc |
diff --git a/ash/accelerators/accelerator_controller.cc b/ash/accelerators/accelerator_controller.cc |
index 229c7c444c3859235dd34fc5054a37ddd6f7aaf8..0014f1f4c08e40abe23e1ca1e1cd06199ff71da9 100644 |
--- a/ash/accelerators/accelerator_controller.cc |
+++ b/ash/accelerators/accelerator_controller.cc |
@@ -459,6 +459,16 @@ void HandleSwitchIme(ImeControlDelegate* ime_control_delegate, |
ime_control_delegate->HandleSwitchIme(accelerator); |
} |
+void HandleTakeActiveWindowScreenshot(ScreenshotDelegate* screenshot_delegate) { |
+ base::RecordAction(UserMetricsAction("Accel_Take_Window_Screenshot")); |
+ DCHECK(screenshot_delegate); |
+ aura::Window* active_window = wm::GetActiveWindow(); |
+ if (!active_window) |
+ return; |
+ if (screenshot_delegate->CanTakeScreenshot()) |
sky
2016/04/13 23:56:16
Why do we need to route taking the screenshot to t
Qiang(Joe) Xu
2016/04/14 22:37:53
Because currently taking screenshot has dependenci
|
+ screenshot_delegate->HandleTakeWindowScreenshot(active_window); |
+} |
+ |
void HandleTakePartialScreenshot(ScreenshotDelegate* screenshot_delegate) { |
base::RecordAction(UserMetricsAction("Accel_Take_Partial_Screenshot")); |
DCHECK(screenshot_delegate); |
@@ -1081,6 +1091,7 @@ bool AcceleratorController::CanPerformAction( |
case SHOW_KEYBOARD_OVERLAY: |
case SHOW_SYSTEM_TRAY_BUBBLE: |
case SHOW_TASK_MANAGER: |
+ case TAKE_ACTIVE_WINDOW_SCREENSHOT: |
case TAKE_PARTIAL_SCREENSHOT: |
case TAKE_SCREENSHOT: |
case TOGGLE_FULLSCREEN: |
@@ -1252,6 +1263,9 @@ void AcceleratorController::PerformAction(AcceleratorAction action, |
case SWITCH_IME: |
HandleSwitchIme(ime_control_delegate_.get(), accelerator); |
break; |
+ case TAKE_ACTIVE_WINDOW_SCREENSHOT: |
+ HandleTakeActiveWindowScreenshot(screenshot_delegate_.get()); |
+ break; |
case TAKE_PARTIAL_SCREENSHOT: |
HandleTakePartialScreenshot(screenshot_delegate_.get()); |
break; |