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

Unified Diff: ash/accelerators/accelerator_controller.cc

Issue 23654011: ash: Clean up window cycling accelerator code (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | ash/accelerators/accelerator_controller_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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:
« no previous file with comments | « no previous file | ash/accelerators/accelerator_controller_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698