-
morrita@google.com authored
Reviewed by Ryosuke Niwa. Space and tab characters "sent" by an input method give totally different results than typing them directly. https://bugs.webkit.org/show_bug.cgi?id=5241 Added a test that exercises continous whitespace characters and tabs inserted by IME. * editing/inserting/insert-composition-whitespace-expected.txt: Added. * editing/inserting/insert-composition-whitespace.html: Added. 2011-01-19 MORITA Hajime <morrita@google.com> Reviewed by Ryosuke Niwa. Space and tab characters "sent" by an input method give totally different results than typing them directly https://bugs.webkit.org/show_bug.cgi?id=5241 * Introduced TextEvent::InputTypeComposition and TypingCommand::TextCompositionType to distinguish text input which is originated by composition. * Generalized rebalanceWhitespaceAt() to rebalanceWhitespaceOnTextSubstring() to rebalancing range of string on text node, instead of surrounding part of that. Test: editing/inserting/insert-composition-whitespace.html * dom/TextEvent.h: (WebCore::TextEvent::isComposition): * dom/TextEventInputType.h: Added TextEventInputComposition as a member of TextEvent::InputType * editing/CompositeEditCommand.cpp: (WebCore::containsOnlyWhitespace): (WebCore::CompositeEditCommand::shouldRebalanceLeadingWhitespaceFor): (WebCore::CompositeEditCommand::canRebalance): (WebCore::CompositeEditCommand::rebalanceWhitespaceAt): (WebCore::CompositeEditCommand::rebalanceWhitespaceOnTextSubstring): Added: A generalized version of rebalanceWhitespaceAt(), which takes a range inside Text string. * editing/CompositeEditCommand.h: * editing/Editor.cpp: (WebCore::Editor::insertTextForConfirmedComposition): Added. (WebCore::Editor::insertTextWithoutSendingTextEvent): (WebCore::Editor::confirmComposition): Now uses insertTextForConfirmedComposition(). (WebCore::Editor::setComposition): * editing/Editor.h: * editing/InsertTextCommand.cpp: (WebCore::InsertTextCommand::input): * editing/InsertTextCommand.h: * editing/TypingCommand.cpp: (WebCore::TypingCommand::TypingCommand): (WebCore::TypingCommand::insertText): (WebCore::TypingCommand::insertTextRunWithoutNewlines): * editing/TypingCommand.h: Added TypingCommand::m_compositionType and TypingCommand::TextCompositionType (WebCore::TypingCommand::setCompositionType): Added. (WebCore::TypingCommand::create): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@76215 268f45cc-cd09-0410-ab3c-d52691b4dbfc
94c27d14