Index: ash/accelerators/accelerator_controller.cc |
diff --git a/ash/accelerators/accelerator_controller.cc b/ash/accelerators/accelerator_controller.cc |
index 2ed2a555b62d8f2b3ef25517903b5d6713c25c0a..62d9796facd7e233cdc4088fa0f17abc0c4fe336 100644 |
--- a/ash/accelerators/accelerator_controller.cc |
+++ b/ash/accelerators/accelerator_controller.cc |
@@ -459,6 +459,14 @@ 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* current_window = wm::GetActiveWindow(); |
+ if (screenshot_delegate->CanTakeScreenshot()) |
sky
2016/03/25 15:27:53
Early out if current_window is null? Also, current
Qiang(Joe) Xu
2016/03/25 19:09:40
I added:
if (!active_window)
return;
once this
|
+ screenshot_delegate->HandleTakeWindowScreenshot(current_window); |
+} |
+ |
void HandleTakePartialScreenshot(ScreenshotDelegate* screenshot_delegate) { |
base::RecordAction(UserMetricsAction("Accel_Take_Partial_Screenshot")); |
DCHECK(screenshot_delegate); |
@@ -1081,6 +1089,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 +1261,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; |