summaryrefslogtreecommitdiffstats
path: root/chrome/views
diff options
context:
space:
mode:
authorjcampan@chromium.org <jcampan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-26 17:59:08 +0000
committerjcampan@chromium.org <jcampan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-26 17:59:08 +0000
commit7ef219e01e9ebfb0bddc40d431acaa2cacd432f0 (patch)
tree4740ff295d08e59dd4dc47c8b97ac73d47ec93b8 /chrome/views
parentfbaf179e4bb1a3a5de3ac4919095d6a787655a59 (diff)
downloadchromium_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.cc11
-rw-r--r--chrome/views/focus/focus_manager.cc7
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;
}