summaryrefslogtreecommitdiffstats
path: root/chrome/views/widget
diff options
context:
space:
mode:
authortommi@google.com <tommi@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-02 16:45:27 +0000
committertommi@google.com <tommi@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-02 16:45:27 +0000
commit060254cd407f502d2e04000c9a59269c14593627 (patch)
treecd2672304bfd316eef5b9f2adad8bc8d65a7a9aa /chrome/views/widget
parent48b47ffa7fc481b9aa281d93f9bfd88915f70e08 (diff)
downloadchromium_src-060254cd407f502d2e04000c9a59269c14593627.zip
chromium_src-060254cd407f502d2e04000c9a59269c14593627.tar.gz
chromium_src-060254cd407f502d2e04000c9a59269c14593627.tar.bz2
Allowing the client to handle escape and keyup events.
Review URL: http://codereview.chromium.org/99293 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15142 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/views/widget')
-rw-r--r--chrome/views/widget/accelerator_handler.cc23
1 files changed, 17 insertions, 6 deletions
diff --git a/chrome/views/widget/accelerator_handler.cc b/chrome/views/widget/accelerator_handler.cc
index 39b17f8..b7f9cb4 100644
--- a/chrome/views/widget/accelerator_handler.cc
+++ b/chrome/views/widget/accelerator_handler.cc
@@ -13,17 +13,28 @@ AcceleratorHandler::AcceleratorHandler() {
bool AcceleratorHandler::Dispatch(const MSG& msg) {
bool process_message = true;
- if ((msg.message == WM_KEYDOWN) || (msg.message == WM_SYSKEYDOWN)) {
+
+ if (msg.message >= WM_KEYFIRST && msg.message <= WM_KEYLAST) {
FocusManager* focus_manager = FocusManager::GetFocusManager(msg.hwnd);
if (focus_manager) {
- // FocusManager::OnKeyDown returns false if this message has been
- // consumed and should not be propogated further
- if (!focus_manager->OnKeyDown(msg.hwnd, msg.message, msg.wParam,
- msg.lParam)) {
- process_message = false;
+ // FocusManager::OnKeyDown and OnKeyUp return false if this message has
+ // been consumed and should not be propagated further.
+ switch (msg.message) {
+ case WM_KEYDOWN:
+ case WM_SYSKEYDOWN:
+ process_message = focus_manager->OnKeyDown(msg.hwnd, msg.message,
+ msg.wParam, msg.lParam);
+ break;
+
+ case WM_KEYUP:
+ case WM_SYSKEYUP:
+ process_message = focus_manager->OnKeyUp(msg.hwnd, msg.message,
+ msg.wParam, msg.lParam);
+ break;
}
}
}
+
if (process_message) {
TranslateMessage(&msg);
DispatchMessage(&msg);