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(); }
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(); }