• Tobias Deiminger's avatar
    Complete TextSelectorEngine if nothing selected · c8cf6513
    Tobias Deiminger authored
    Selecting highlight tool, pressing left mouse button while over text, and
    immediately releasing without dragging a selection caused inconsistent state.
    
    It left TextSelectorEnigne in the state m_creationCompleted == false and
    m_lockedItem == something. Then in continuous mode all events kept on being
    propagated to TextSelectorEngine::event, even if the user started unrelated
    interactions in the meantime. This caused various side effects.
    
    It notably happened when you double clicked a finished highlight annotation,
    as described in bug 426658.
    
    We can go to m_creationComplete after release even without a selection,
    because TextSelectorEngine::end and PageViewAnnotator::performRouteMouseOrTabletEvent
    handle the case just fine, i.e. don't create an annotation but reset the state machine.
    
    Fixes bug 426658 at least partially. I couldn't reproduce the described crash,
    so no idea if that's also fixed.
    
    BUG: 446658
    c8cf6513
pageviewannotator.cpp 55.4 KB