| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008, 2011 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2008, 2011 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) | 3 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 430 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 441 for (const auto& underline : underlines) { | 441 for (const auto& underline : underlines) { |
| 442 unsigned underlineStart = offsetInPlainChars + underline.startOffset(); | 442 unsigned underlineStart = offsetInPlainChars + underline.startOffset(); |
| 443 unsigned underlineEnd = offsetInPlainChars + underline.endOffset(); | 443 unsigned underlineEnd = offsetInPlainChars + underline.endOffset(); |
| 444 | 444 |
| 445 EphemeralRange ephemeralLineRange = | 445 EphemeralRange ephemeralLineRange = |
| 446 PlainTextRange(underlineStart, underlineEnd).createRange(*baseElement); | 446 PlainTextRange(underlineStart, underlineEnd).createRange(*baseElement); |
| 447 if (ephemeralLineRange.isNull()) | 447 if (ephemeralLineRange.isNull()) |
| 448 continue; | 448 continue; |
| 449 | 449 |
| 450 document().markers().addCompositionMarker( | 450 document().markers().addCompositionMarker( |
| 451 ephemeralLineRange.startPosition(), ephemeralLineRange.endPosition(), | 451 ephemeralLineRange, underline.color(), underline.thick(), |
| 452 underline.color(), underline.thick(), underline.backgroundColor()); | 452 underline.backgroundColor()); |
| 453 } | 453 } |
| 454 } | 454 } |
| 455 | 455 |
| 456 bool InputMethodController::replaceCompositionAndMoveCaret( | 456 bool InputMethodController::replaceCompositionAndMoveCaret( |
| 457 const String& text, | 457 const String& text, |
| 458 int relativeCaretPosition, | 458 int relativeCaretPosition, |
| 459 const Vector<CompositionUnderline>& underlines) { | 459 const Vector<CompositionUnderline>& underlines) { |
| 460 Element* rootEditableElement = | 460 Element* rootEditableElement = |
| 461 frame() | 461 frame() |
| 462 .selection() | 462 .selection() |
| (...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 688 | 688 |
| 689 // TODO(xiaochengh): The use of updateStyleAndLayoutIgnorePendingStylesheets | 689 // TODO(xiaochengh): The use of updateStyleAndLayoutIgnorePendingStylesheets |
| 690 // needs to be audited. see http://crbug.com/590369 for more details. | 690 // needs to be audited. see http://crbug.com/590369 for more details. |
| 691 document().updateStyleAndLayoutIgnorePendingStylesheets(); | 691 document().updateStyleAndLayoutIgnorePendingStylesheets(); |
| 692 | 692 |
| 693 // We shouldn't close typing in the middle of setComposition. | 693 // We shouldn't close typing in the middle of setComposition. |
| 694 setEditableSelectionOffsets(selectedRange, NotUserTriggered); | 694 setEditableSelectionOffsets(selectedRange, NotUserTriggered); |
| 695 | 695 |
| 696 if (underlines.isEmpty()) { | 696 if (underlines.isEmpty()) { |
| 697 document().markers().addCompositionMarker( | 697 document().markers().addCompositionMarker( |
| 698 m_compositionRange->startPosition(), m_compositionRange->endPosition(), | 698 EphemeralRange(m_compositionRange), Color::black, false, |
| 699 Color::black, false, | |
| 700 LayoutTheme::theme().platformDefaultCompositionBackgroundColor()); | 699 LayoutTheme::theme().platformDefaultCompositionBackgroundColor()); |
| 701 return; | 700 return; |
| 702 } | 701 } |
| 703 | 702 |
| 704 const PlainTextRange compositionPlainTextRange = | 703 const PlainTextRange compositionPlainTextRange = |
| 705 PlainTextRange::create(*baseNode->parentNode(), *m_compositionRange); | 704 PlainTextRange::create(*baseNode->parentNode(), *m_compositionRange); |
| 706 addCompositionUnderlines(underlines, baseNode->parentNode(), | 705 addCompositionUnderlines(underlines, baseNode->parentNode(), |
| 707 compositionPlainTextRange.start()); | 706 compositionPlainTextRange.start()); |
| 708 } | 707 } |
| 709 | 708 |
| (...skipping 530 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1240 finishComposingText(KeepSelection); | 1239 finishComposingText(KeepSelection); |
| 1241 } | 1240 } |
| 1242 | 1241 |
| 1243 DEFINE_TRACE(InputMethodController) { | 1242 DEFINE_TRACE(InputMethodController) { |
| 1244 visitor->trace(m_frame); | 1243 visitor->trace(m_frame); |
| 1245 visitor->trace(m_compositionRange); | 1244 visitor->trace(m_compositionRange); |
| 1246 SynchronousMutationObserver::trace(visitor); | 1245 SynchronousMutationObserver::trace(visitor); |
| 1247 } | 1246 } |
| 1248 | 1247 |
| 1249 } // namespace blink | 1248 } // namespace blink |
| OLD | NEW |