Index: chrome/views/controls/text_field.cc |
=================================================================== |
--- chrome/views/controls/text_field.cc (revision 12559) |
+++ chrome/views/controls/text_field.cc (working copy) |
@@ -73,6 +73,7 @@ |
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 @@ |
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 @@ |
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) { |