diff options
author | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-30 23:27:48 +0000 |
---|---|---|
committer | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-30 23:27:48 +0000 |
commit | 4e96479e986ed25c37913112dfd88e2a36dc2e0e (patch) | |
tree | 231f9ab6f1269bfada0716a924d0b5da491464de /chrome_frame/chrome_frame_activex_base.h | |
parent | 62f11b4cf434a4048a422fb0606695acda9e01b1 (diff) | |
download | chromium_src-4e96479e986ed25c37913112dfd88e2a36dc2e0e.zip chromium_src-4e96479e986ed25c37913112dfd88e2a36dc2e0e.tar.gz chromium_src-4e96479e986ed25c37913112dfd88e2a36dc2e0e.tar.bz2 |
Post the WM_SYSKEYDOWN/WM_SYSKEYUP messages to the parent window when ChromeFrame is
active. This ensures that the Alt key is processed correctly in IE9, i.e. the menu bar
is dropped down. On IE8 it appears that the Alt key is processed by the Ole control site
in the context of WM_SYSKEYUP message even though it still returns S_FALSE. IE8 continues
to work with this change as well.
Fixes bug http://code.google.com/p/chromium/issues/detail?id=55763
BUG=55763
TEST=Launch IE9 and navigate to a chrome frame site. Press the Alt key and verify that the
menu bar is dropped down.
Review URL: http://codereview.chromium.org/5390004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67780 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame/chrome_frame_activex_base.h')
-rw-r--r-- | chrome_frame/chrome_frame_activex_base.h | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/chrome_frame/chrome_frame_activex_base.h b/chrome_frame/chrome_frame_activex_base.h index c3bdfeb..ebaf06c 100644 --- a/chrome_frame/chrome_frame_activex_base.h +++ b/chrome_frame/chrome_frame_activex_base.h @@ -1112,19 +1112,21 @@ END_MSG_MAP() << base::StringPrintf("0x%08x", hr); if (hr != S_OK) { - // The WM_SYSCHAR message is not processed by the IOleControlSite - // implementation and the IBrowserService2::v_MayTranslateAccelerator - // implementation. We need to understand this better. That is for - // another day. For now we just post the WM_SYSCHAR message back to our - // parent which forwards it off to the frame. This should not cause major - // grief for Chrome as it does not need to handle WM_SYSCHAR accelerators - // when running in ChromeFrame mode. + // The WM_SYSKEYDOWN/WM_SYSKEYUP messages are not processed by the + // IOleControlSite and IBrowserService2::v_MayTranslateAccelerator + // implementations. We need to understand this better. That is for + // another day. For now we just post these messages back to the parent + // which forwards it off to the frame. This should not cause major + // grief for Chrome as it does not need to handle WM_SYSKEY* messages in + // in ChromeFrame mode. // TODO(iyengar) // Understand and fix WM_SYSCHAR handling // We should probably unify the accelerator handling for the active // document and the activex. - if (accel_message.message == WM_SYSCHAR) { - ::PostMessage(GetParent(), WM_SYSCHAR, accel_message.wParam, + if (accel_message.message == WM_SYSCHAR || + accel_message.message == WM_SYSKEYDOWN || + accel_message.message == WM_SYSKEYUP) { + ::PostMessage(GetParent(), accel_message.message, accel_message.wParam, accel_message.lParam); return; } |