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

Unified Diff: chrome/browser/chromeos/status/status_area_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: chrome/browser/chromeos/status/status_area_view.cc
diff --git a/chrome/browser/chromeos/status/status_area_view.cc b/chrome/browser/chromeos/status/status_area_view.cc
index fb04757acd882f49ced55b489c1ae3819e34f839..7fcae60e75fbb194db9c8fd05d00c2fa4732a244 100644
--- a/chrome/browser/chromeos/status/status_area_view.cc
+++ b/chrome/browser/chromeos/status/status_area_view.cc
@@ -14,6 +14,8 @@
#include "ui/views/border.h"
#if defined(USE_AURA)
+#include "ash/launcher/launcher.h"
+#include "ash/shell.h"
#include "ui/views/widget/widget.h"
#endif
@@ -21,8 +23,14 @@
const int kSeparation = 0;
StatusAreaView::StatusAreaView()
- : need_return_focus_(false) {
+ : need_return_focus_(false),
+ ctrl_forward_key_(ui::VKEY_F2, false, true, false),
+ ctrl_back_key_(ui::VKEY_F1, false, true, false) {
set_id(VIEW_ID_STATUS_AREA);
+#if defined(USE_AURA)
+ AddAccelerator(ctrl_forward_key_);
+ AddAccelerator(ctrl_back_key_);
+#endif
}
StatusAreaView::~StatusAreaView() {
@@ -102,6 +110,36 @@ void StatusAreaView::ChildPreferredSizeChanged(View* child) {
PreferredSizeChanged();
}
+bool StatusAreaView::AcceleratorPressed(const ui::Accelerator& accelerator) {
+#if defined(USE_AURA)
+ bool focus_launcher = false;
+ switch (accelerator.key_code()) {
+ case ui::VKEY_F1:
+ focus_launcher = !ash::Shell::GetInstance()->IsWindowModeCompact();
+ break;
+
+ case ui::VKEY_F2:
+ // Focus Browser.
+ break;
+
+ default:
+ return false;
+ }
+
+ if (focus_launcher) {
+ if (ash::Shell::GetInstance()->launcher()->Activate()) {
+ return true;
+ }
+ // If we couldn't focus the launcher, fall through and focus the browser.
+ }
+ // TODO: Focus Browser
+
+ return true;
+#else
+ return false;
+#endif
+}
+
void StatusAreaView::MakeButtonsActive(bool active) {
for (std::list<StatusAreaButton*>::iterator iter = buttons_.begin();
iter != buttons_.end(); ++iter) {

Powered by Google App Engine
This is Rietveld 408576698