summaryrefslogtreecommitdiffstats
path: root/chrome_frame/chrome_frame_activex_base.h
diff options
context:
space:
mode:
authorananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-30 23:27:48 +0000
committerananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-30 23:27:48 +0000
commit4e96479e986ed25c37913112dfd88e2a36dc2e0e (patch)
tree231f9ab6f1269bfada0716a924d0b5da491464de /chrome_frame/chrome_frame_activex_base.h
parent62f11b4cf434a4048a422fb0606695acda9e01b1 (diff)
downloadchromium_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.h20
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;
}