Chromium Code Reviews| Index: chrome/browser/autocomplete/autocomplete_edit_view_mac.mm |
| =================================================================== |
| --- chrome/browser/autocomplete/autocomplete_edit_view_mac.mm (revision 23601) |
| +++ chrome/browser/autocomplete/autocomplete_edit_view_mac.mm (working copy) |
| @@ -362,6 +362,18 @@ |
| } |
| void AutocompleteEditViewMac::SetText(const std::wstring& display_text) { |
| + // Exit if an input method is composing text. |
|
rohitrao (ping after 24h)
2009/08/18 21:42:35
Is this guaranteed to be called again once the tex
Hironori Bono
2009/08/19 05:23:38
Yes. This function is called when this NSTextField
|
| + // NSTextView finishes an ongoing composition when updating the value of an |
| + // NSTextField instance. This prevents inputting non-ASCII characters which |
| + // need input methods, such as Latin characters, CJK characters, etc. |
| + // To prevent updating this NSTextField value while an input method is |
| + // composing text, we check whether or not the field editor for this control |
| + // has marked text, text being composed by an input method, and return if |
| + // the editor has marked text. |
| + NSTextView* text_view = static_cast<NSTextView*>([field_ currentEditor]); |
| + if (text_view && [text_view hasMarkedText]) |
| + return; |
| + |
| NSString* ss = base::SysWideToNSString(display_text); |
| NSMutableAttributedString* as = |
| [[[NSMutableAttributedString alloc] initWithString:ss] autorelease]; |