diff options
Diffstat (limited to 'ui/views/controls/textfield/native_textfield_win.cc')
-rw-r--r-- | ui/views/controls/textfield/native_textfield_win.cc | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/ui/views/controls/textfield/native_textfield_win.cc b/ui/views/controls/textfield/native_textfield_win.cc index 6baebf6..73cbf1e 100644 --- a/ui/views/controls/textfield/native_textfield_win.cc +++ b/ui/views/controls/textfield/native_textfield_win.cc @@ -84,7 +84,7 @@ NativeTextfieldWin::ScopedSuspendUndo::~ScopedSuspendUndo() { /////////////////////////////////////////////////////////////////////////////// // NativeTextfieldWin -bool NativeTextfieldWin::did_load_library_ = false; +HMODULE NativeTextfieldWin::loaded_libarary_module_ = false; NativeTextfieldWin::NativeTextfieldWin(Textfield* textfield) : textfield_(textfield), @@ -97,8 +97,11 @@ NativeTextfieldWin::NativeTextfieldWin(Textfield* textfield) ime_composition_length_(0), container_view_(new NativeViewHost), bg_color_(0) { - if (!did_load_library_) - did_load_library_ = !!LoadLibrary(L"riched20.dll"); + if (!loaded_libarary_module_) { + // msftedit.dll is RichEdit ver 4.1. + // This version is available from WinXP SP1 and has TSF support. + loaded_libarary_module_ = LoadLibrary(L"msftedit.dll"); + } DWORD style = kDefaultEditStyle | ES_AUTOHSCROLL; if (textfield_->style() & Textfield::STYLE_OBSCURED) @@ -565,6 +568,15 @@ void NativeTextfieldWin::OnCopy() { } } +LRESULT NativeTextfieldWin::OnCreate(const CREATESTRUCTW* /*create_struct*/) { + if (base::win::IsTsfAwareRequired()) { + // Enable TSF support of RichEdit. + SetEditStyle(SES_USECTF, SES_USECTF); + } + SetMsgHandled(FALSE); + return 0; +} + void NativeTextfieldWin::OnCut() { if (textfield_->read_only() || textfield_->IsObscured()) return; |