diff options
author | jcampan@chromium.org <jcampan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-26 17:59:08 +0000 |
---|---|---|
committer | jcampan@chromium.org <jcampan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-26 17:59:08 +0000 |
commit | 7ef219e01e9ebfb0bddc40d431acaa2cacd432f0 (patch) | |
tree | 4740ff295d08e59dd4dc47c8b97ac73d47ec93b8 /chrome/views | |
parent | fbaf179e4bb1a3a5de3ac4919095d6a787655a59 (diff) | |
download | chromium_src-7ef219e01e9ebfb0bddc40d431acaa2cacd432f0.zip chromium_src-7ef219e01e9ebfb0bddc40d431acaa2cacd432f0.tar.gz chromium_src-7ef219e01e9ebfb0bddc40d431acaa2cacd432f0.tar.bz2 |
In an effort to make the FocusManager class platform independent, moving some Windows specific code around.
BUG=9117
TEST=None
Review URL: http://codereview.chromium.org/42621
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12571 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/views')
-rw-r--r-- | chrome/views/controls/text_field.cc | 11 | ||||
-rw-r--r-- | chrome/views/focus/focus_manager.cc | 7 |
2 files changed, 11 insertions, 7 deletions
diff --git a/chrome/views/controls/text_field.cc b/chrome/views/controls/text_field.cc index a769c2a..3818836 100644 --- a/chrome/views/controls/text_field.cc +++ b/chrome/views/controls/text_field.cc @@ -73,6 +73,7 @@ class TextField::Edit MSG_WM_CREATE(OnCreate) MSG_WM_CUT(OnCut) MSG_WM_DESTROY(OnDestroy) + MESSAGE_HANDLER_EX(WM_IME_CHAR, OnImeChar) MESSAGE_HANDLER_EX(WM_IME_STARTCOMPOSITION, OnImeStartComposition) MESSAGE_HANDLER_EX(WM_IME_COMPOSITION, OnImeComposition) MSG_WM_KEYDOWN(OnKeyDown) @@ -121,6 +122,7 @@ class TextField::Edit LRESULT OnCreate(CREATESTRUCT* create_struct); void OnCut(); void OnDestroy(); + LRESULT OnImeChar(UINT message, WPARAM wparam, LPARAM lparam); LRESULT OnImeStartComposition(UINT message, WPARAM wparam, LPARAM lparam); LRESULT OnImeComposition(UINT message, WPARAM wparam, LPARAM lparam); void OnKeyDown(TCHAR key, UINT repeat_count, UINT flags); @@ -439,6 +441,15 @@ void TextField::Edit::OnDestroy() { TRACK_HWND_DESTRUCTION(m_hWnd); } +LRESULT TextField::Edit::OnImeChar(UINT message, WPARAM wparam, LPARAM lparam) { + // http://crbug.com/7707: a rich-edit control may crash when it receives a + // WM_IME_CHAR message while it is processing a WM_IME_COMPOSITION message. + // Since view controls don't need WM_IME_CHAR messages, we prevent WM_IME_CHAR + // messages from being dispatched to view controls via the CallWindowProc() + // call. + return 0; +} + LRESULT TextField::Edit::OnImeStartComposition(UINT message, WPARAM wparam, LPARAM lparam) { diff --git a/chrome/views/focus/focus_manager.cc b/chrome/views/focus/focus_manager.cc index d8fb23f..8d22506 100644 --- a/chrome/views/focus/focus_manager.cc +++ b/chrome/views/focus/focus_manager.cc @@ -84,13 +84,6 @@ static LRESULT CALLBACK FocusWindowCallback(HWND window, UINT message, return 0; return result; } - case WM_IME_CHAR: - // Issue 7707: A rich-edit control may crash when it receives a - // WM_IME_CHAR message while it is processing a WM_IME_COMPOSITION - // message. Since view controls don't need WM_IME_CHAR messages, - // we prevent WM_IME_CHAR messages from being dispatched to view - // controls via the CallWindowProc() call. - return 0; default: break; } |