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

Unified Diff: ash/launcher/launcher_view.cc

Issue 9295049: Allow focus to be sent between browser window and launcher/status window (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 11 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
Index: ash/launcher/launcher_view.cc
diff --git a/ash/launcher/launcher_view.cc b/ash/launcher/launcher_view.cc
index d674bb343f3ed6a78c2009631531d8012f5e78d0..c7fa01eb10c08481b3865d45593305612e6e748d 100644
--- a/ash/launcher/launcher_view.cc
+++ b/ash/launcher/launcher_view.cc
@@ -25,6 +25,7 @@
#include "ui/views/controls/button/image_button.h"
#include "ui/views/controls/menu/menu_model_adapter.h"
#include "ui/views/controls/menu/menu_runner.h"
+#include "ui/views/focus/focus_manager.h"
#include "ui/views/widget/widget.h"
using ui::Animation;
@@ -188,9 +189,13 @@ LauncherView::LauncherView(LauncherModel* model)
dragging_(NULL),
drag_view_(NULL),
drag_offset_(0),
- start_drag_index_(-1) {
+ start_drag_index_(-1),
+ ctrl_forward_key_(ui::VKEY_F2, false, true, false),
+ ctrl_back_key_(ui::VKEY_F1, false, true, false) {
DCHECK(model_);
bounds_animator_.reset(new views::BoundsAnimator(this));
+ AddAccelerator(ctrl_forward_key_);
+ AddAccelerator(ctrl_back_key_);
}
LauncherView::~LauncherView() {
@@ -493,6 +498,28 @@ void LauncherView::OnBoundsChanged(const gfx::Rect& previous_bounds) {
LayoutToIdealBounds();
}
+bool LauncherView::AcceleratorPressed(const ui::Accelerator& accelerator) {
+ views::FocusManager* focus_manager = GetFocusManager();
+ const views::View* focused_view = focus_manager->GetFocusedView();
+ if (!Contains(focused_view))
+ return false;
+
+ ShellDelegate* delegate = Shell::GetInstance()->delegate();
+ if (!delegate)
+ return false;
+
+ switch (accelerator.key_code()) {
+ case ui::VKEY_F1:
+ delegate->RotateFocus(true);
+ return true;
+ case ui::VKEY_F2:
+ delegate->RotateFocus(false);
+ return true;
+ default:
+ return false;
+ }
+}
+
void LauncherView::LauncherItemAdded(int model_index) {
CancelDrag(NULL);

Powered by Google App Engine
This is Rietveld 408576698