diff options
author | tommi@google.com <tommi@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-02 16:45:27 +0000 |
---|---|---|
committer | tommi@google.com <tommi@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-02 16:45:27 +0000 |
commit | 060254cd407f502d2e04000c9a59269c14593627 (patch) | |
tree | cd2672304bfd316eef5b9f2adad8bc8d65a7a9aa /chrome/views/widget | |
parent | 48b47ffa7fc481b9aa281d93f9bfd88915f70e08 (diff) | |
download | chromium_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.cc | 23 |
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); |