Index: chrome/browser/ui/views/app_menu_button_win.cc |
diff --git a/chrome/browser/ui/views/app_menu_button_win.cc b/chrome/browser/ui/views/app_menu_button_win.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..0bf0990e27e689eef98b9dd5a37f75135bc7e421 |
--- /dev/null |
+++ b/chrome/browser/ui/views/app_menu_button_win.cc |
@@ -0,0 +1,23 @@ |
+// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "chrome/browser/ui/views/app_menu_button_win.h" |
+ |
+#include "ui/base/win/hwnd_util.h" |
+#include "views/widget/widget.h" |
+ |
+AppMenuButtonWin::AppMenuButtonWin(views::ViewMenuDelegate* menu_delegate) |
+ : views::MenuButton(NULL, std::wstring(), menu_delegate, false) { |
+} |
+ |
+bool AppMenuButtonWin::OnKeyPressed(const views::KeyEvent& event) { |
+ if (event.key_code() == ui::VKEY_SPACE) { |
+ // Typical windows behavior is to show the system menu on space. |
+ views::Widget* widget = GetWidget(); |
+ gfx::Rect bounds = widget->GetClientAreaScreenBounds(); |
+ ui::ShowSystemMenu(widget->GetNativeView(), bounds.x(), bounds.y() + 10); |
+ return false; |
+ } |
+ return views::MenuButton::OnKeyPressed(event); |
+} |