Пример #1
0
void InputMethodController::cancelCompositionIfSelectionIsInvalid()
{
    if (!hasComposition() || editor().preventRevealSelection())
        return;

    // Check if selection start and selection end are valid.
    FrameSelection& selection = frame().selection();
    if (!selection.isNone() && !m_compositionRange->collapsed()) {
        if (selection.start().compareTo(m_compositionRange->startPosition()) >= 0
            && selection.end().compareTo(m_compositionRange->endPosition()) <= 0)
            return;
    }

    cancelComposition();
    frame().chromeClient().didCancelCompositionOnSelectionChange();
}
Пример #2
0
void InputMethodController::cancelCompositionIfSelectionIsInvalid()
{
    if (!hasComposition() || editor().preventRevealSelection())
        return;

    // Check if selection start and selection end are valid.
    Position start = m_frame.selection().start();
    Position end = m_frame.selection().end();
    if (start.containerNode() == m_compositionNode
        && end.containerNode() == m_compositionNode
        && static_cast<unsigned>(start.computeOffsetInContainerNode()) >= m_compositionStart
        && static_cast<unsigned>(end.computeOffsetInContainerNode()) <= m_compositionEnd)
        return;

    cancelComposition();
}