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

Unified Diff: ash/accelerators/accelerator_controller.cc

Issue 10977074: Toggling windows with (shift)-f5 and (shift)-alt-tab does not repeat on key repeat anymore. (Closed) Base URL: http://git.chromium.org/chromium/src.git@issue-135284-repeated-maximize
Patch Set: Fixed the missing code and reserved actions. Created 8 years, 2 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 | « ash/accelerators/accelerator_controller.h ('k') | ash/accelerators/accelerator_table.h » ('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 fc050a1b7392670193293d0a50f90bc3990a3bd9..484da3b8ada98371e708dd94279b22cb6ea52f21 100644
--- a/ash/accelerators/accelerator_controller.cc
+++ b/ash/accelerators/accelerator_controller.cc
@@ -333,7 +333,11 @@ bool HandlePrintWindowHierarchy() {
AcceleratorController::AcceleratorController()
: accelerator_manager_(new ui::AcceleratorManager),
- toggle_maximized_suppressed_(false) {
+ toggle_maximized_suppressed_(false),
+ cycle_backward_linear_suppressed_(false),
+ cycle_forward_linear_suppressed_(false),
+ cycle_backward_mru_suppressed_(false),
+ cycle_forward_mru_suppressed_(false) {
Init();
}
@@ -431,26 +435,50 @@ bool AcceleratorController::PerformAction(int action,
// function might be called *twice*, via BrowserView::PreHandleKeyboardEvent
// and BrowserView::HandleKeyboardEvent, for a single accelerator press.
switch (action) {
- case CYCLE_BACKWARD_MRU:
+ case CYCLE_BACKWARD_MRU_PRESSED:
+ if (cycle_backward_mru_suppressed_)
+ return true;
+ cycle_backward_mru_suppressed_ = true;
if (key_code == ui::VKEY_TAB && shell->delegate())
shell->delegate()->RecordUserMetricsAction(UMA_ACCEL_PREVWINDOW_TAB);
return HandleCycleWindowMRU(WindowCycleController::BACKWARD,
accelerator.IsAltDown());
- case CYCLE_FORWARD_MRU:
+ case CYCLE_BACKWARD_MRU_RELEASED:
+ cycle_backward_mru_suppressed_ = false;
+ return true;
+ case CYCLE_FORWARD_MRU_PRESSED:
+ if (cycle_forward_mru_suppressed_)
+ return true;
+ cycle_forward_mru_suppressed_ = true;
if (key_code == ui::VKEY_TAB && shell->delegate())
shell->delegate()->RecordUserMetricsAction(UMA_ACCEL_NEXTWINDOW_TAB);
return HandleCycleWindowMRU(WindowCycleController::FORWARD,
accelerator.IsAltDown());
- case CYCLE_BACKWARD_LINEAR:
+ case CYCLE_FORWARD_MRU_RELEASED:
+ cycle_forward_mru_suppressed_ = false;
+ return true;
+ case CYCLE_BACKWARD_LINEAR_PRESSED:
+ if (cycle_backward_linear_suppressed_)
+ return true;
+ cycle_backward_linear_suppressed_ = true;
if (key_code == ui::VKEY_F5 && shell->delegate())
shell->delegate()->RecordUserMetricsAction(UMA_ACCEL_PREVWINDOW_F5);
HandleCycleWindowLinear(CYCLE_BACKWARD);
return true;
- case CYCLE_FORWARD_LINEAR:
+ case CYCLE_BACKWARD_LINEAR_RELEASED:
+ cycle_backward_linear_suppressed_ = false;
+ return true;
+ case CYCLE_FORWARD_LINEAR_PRESSED:
+ if (cycle_forward_linear_suppressed_)
+ return true;
+ cycle_forward_linear_suppressed_ = true;
if (key_code == ui::VKEY_F5 && shell->delegate())
shell->delegate()->RecordUserMetricsAction(UMA_ACCEL_NEXTWINDOW_F5);
HandleCycleWindowLinear(CYCLE_FORWARD);
return true;
+ case CYCLE_FORWARD_LINEAR_RELEASED:
+ cycle_forward_linear_suppressed_ = false;
+ return true;
#if defined(OS_CHROMEOS)
case CYCLE_DISPLAY_MODE:
HandleCycleDisplayMode();
« no previous file with comments | « ash/accelerators/accelerator_controller.h ('k') | ash/accelerators/accelerator_table.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698