Index: ash/accelerators/accelerator_controller.cc |
diff --git a/ash/accelerators/accelerator_controller.cc b/ash/accelerators/accelerator_controller.cc |
index 92503c835eb544b1bb9b1a7becb9bc6d425778e9..872b3136898b04da62df188868e9f5f13e1444bb 100644 |
--- a/ash/accelerators/accelerator_controller.cc |
+++ b/ash/accelerators/accelerator_controller.cc |
@@ -92,27 +92,49 @@ bool OverviewEnabled() { |
switches::kAshDisableOverviewMode); |
} |
-bool HandleCycleWindowMRU(WindowCycleController::Direction direction, |
- bool is_alt_down) { |
- Shell::GetInstance()-> |
- window_cycle_controller()->HandleCycleWindow(direction, is_alt_down); |
- // Always report we handled the key, even if the window didn't change. |
- return true; |
-} |
+void HandleCycleBackwardMRU(const ui::Accelerator& accelerator) { |
+ Shell* shell = Shell::GetInstance(); |
-bool HandleCycleWindowOverviewMRU(WindowSelector::Direction direction) { |
- Shell::GetInstance()-> |
- window_selector_controller()->HandleCycleWindow(direction); |
- return true; |
+ if (accelerator.key_code() == ui::VKEY_TAB) |
+ shell->delegate()->RecordUserMetricsAction(UMA_ACCEL_PREVWINDOW_TAB); |
+ |
+ if (OverviewEnabled()) { |
+ shell->window_selector_controller()->HandleCycleWindow( |
+ WindowSelector::BACKWARD); |
+ return; |
+ } |
+ shell->window_cycle_controller()->HandleCycleWindow( |
+ WindowCycleController::BACKWARD, accelerator.IsAltDown()); |
} |
-void HandleCycleWindowLinear(CycleDirection direction) { |
- Shell::GetInstance()-> |
- window_cycle_controller()->HandleLinearCycleWindow(); |
+void HandleCycleForwardMRU(const ui::Accelerator& accelerator) { |
+ Shell* shell = Shell::GetInstance(); |
+ |
+ if (accelerator.key_code() == ui::VKEY_TAB) |
+ shell->delegate()->RecordUserMetricsAction(UMA_ACCEL_NEXTWINDOW_TAB); |
+ |
+ if (OverviewEnabled()) { |
+ shell->window_selector_controller()->HandleCycleWindow( |
+ WindowSelector::FORWARD); |
+ return; |
+ } |
+ shell->window_cycle_controller()->HandleCycleWindow( |
+ WindowCycleController::FORWARD, accelerator.IsAltDown()); |
} |
-void ToggleOverviewMode() { |
- Shell::GetInstance()->window_selector_controller()->ToggleOverview(); |
+void HandleCycleLinear(const ui::Accelerator& accelerator) { |
+ Shell* shell = Shell::GetInstance(); |
+ |
+ // TODO(jamescook): When overview becomes the default the AcceleratorAction |
+ // should be renamed from CYCLE_LINEAR to TOGGLE_OVERVIEW. |
+ if (OverviewEnabled()) { |
+ shell->delegate()->RecordUserMetricsAction(UMA_ACCEL_OVERVIEW_F5); |
+ shell->window_selector_controller()->ToggleOverview(); |
+ return; |
+ } |
+ if (accelerator.key_code() == ui::VKEY_MEDIA_LAUNCH_APP1) |
+ shell->delegate()->RecordUserMetricsAction(UMA_ACCEL_NEXTWINDOW_F5); |
+ shell->window_cycle_controller()->HandleLinearCycleWindow(); |
} |
bool HandleAccessibleFocusCycle(bool reverse) { |
@@ -522,44 +544,23 @@ bool AcceleratorController::PerformAction(int action, |
// You *MUST* return true when some action is performed. Otherwise, this |
// function might be called *twice*, via BrowserView::PreHandleKeyboardEvent |
// and BrowserView::HandleKeyboardEvent, for a single accelerator press. |
+ // |
+ // If your accelerator invokes more than one line of code, please either |
+ // implement it in your module's controller code (like TOGGLE_MIRROR_MODE |
+ // below) or pull it into a HandleFoo() function above. |
switch (action) { |
case ACCESSIBLE_FOCUS_NEXT: |
return HandleAccessibleFocusCycle(false); |
case ACCESSIBLE_FOCUS_PREVIOUS: |
return HandleAccessibleFocusCycle(true); |
case CYCLE_BACKWARD_MRU: |
- if (key_code == ui::VKEY_TAB) |
- shell->delegate()->RecordUserMetricsAction(UMA_ACCEL_PREVWINDOW_TAB); |
- if (OverviewEnabled()) |
- return HandleCycleWindowOverviewMRU(WindowSelector::BACKWARD); |
- return HandleCycleWindowMRU(WindowCycleController::BACKWARD, |
- accelerator.IsAltDown()); |
+ HandleCycleBackwardMRU(accelerator); |
+ return true; |
case CYCLE_FORWARD_MRU: |
- if (key_code == ui::VKEY_TAB) |
- shell->delegate()->RecordUserMetricsAction(UMA_ACCEL_NEXTWINDOW_TAB); |
- if (OverviewEnabled()) |
- return HandleCycleWindowOverviewMRU(WindowSelector::FORWARD); |
- return HandleCycleWindowMRU(WindowCycleController::FORWARD, |
- accelerator.IsAltDown()); |
- case CYCLE_BACKWARD_LINEAR: |
- if (OverviewEnabled()) { |
- shell->delegate()->RecordUserMetricsAction(UMA_ACCEL_OVERVIEW_F5); |
- ToggleOverviewMode(); |
- return true; |
- } |
- if (key_code == ui::VKEY_MEDIA_LAUNCH_APP1) |
- shell->delegate()->RecordUserMetricsAction(UMA_ACCEL_PREVWINDOW_F5); |
- HandleCycleWindowLinear(CYCLE_BACKWARD); |
- return true; |
- case CYCLE_FORWARD_LINEAR: |
- if (OverviewEnabled()) { |
- shell->delegate()->RecordUserMetricsAction(UMA_ACCEL_OVERVIEW_F5); |
- ToggleOverviewMode(); |
- return true; |
- } |
- if (key_code == ui::VKEY_MEDIA_LAUNCH_APP1) |
- shell->delegate()->RecordUserMetricsAction(UMA_ACCEL_NEXTWINDOW_F5); |
- HandleCycleWindowLinear(CYCLE_FORWARD); |
+ HandleCycleForwardMRU(accelerator); |
+ return true; |
+ case CYCLE_LINEAR: |
+ HandleCycleLinear(accelerator); |
return true; |
#if defined(OS_CHROMEOS) |
case ADD_REMOVE_DISPLAY: |
@@ -717,19 +718,15 @@ bool AcceleratorController::PerformAction(int action, |
case VOLUME_MUTE: |
return shell->system_tray_delegate()->GetVolumeControlDelegate()-> |
HandleVolumeMute(accelerator); |
- break; |
case VOLUME_DOWN: |
return shell->system_tray_delegate()->GetVolumeControlDelegate()-> |
HandleVolumeDown(accelerator); |
- break; |
case VOLUME_UP: |
return shell->system_tray_delegate()->GetVolumeControlDelegate()-> |
HandleVolumeUp(accelerator); |
- break; |
case FOCUS_LAUNCHER: |
return shell->focus_cycler()->FocusWidget( |
Launcher::ForPrimaryDisplay()->shelf_widget()); |
- break; |
case FOCUS_NEXT_PANE: |
return HandleRotatePaneFocus(Shell::FORWARD); |
case FOCUS_PREVIOUS_PANE: |