src/cm/media/js/client/c_selection.js
changeset 397 eba2e55eb437
parent 341 053551f213fb
child 525 89ef5ed3c48b
equal deleted inserted replaced
395:5ff35e8e16e2 397:eba2e55eb437
    41         var r1 = document.createRange() ;r1.setStart(userSelection.anchorNode, userSelection.anchorOffset) ;r1.collapse(true) ;
    41         var r1 = document.createRange() ;r1.setStart(userSelection.anchorNode, userSelection.anchorOffset) ;r1.collapse(true) ;
    42         var r2 = document.createRange() ;r2.setEnd(userSelection.focusNode, userSelection.focusOffset) ;r2.collapse(false) ;
    42         var r2 = document.createRange() ;r2.setEnd(userSelection.focusNode, userSelection.focusOffset) ;r2.collapse(false) ;
    43         var leftToRight = (r2.compareBoundaryPoints(2, r1) == 1) ; // 2 is for END_TO_END
    43         var leftToRight = (r2.compareBoundaryPoints(2, r1) == 1) ; // 2 is for END_TO_END
    44 //        CY.log("leftToRight : " + leftToRight) ;
    44 //        CY.log("leftToRight : " + leftToRight) ;
    45         startNode = (leftToRight) ? userSelection.anchorNode.parentNode : userSelection.focusNode.parentNode ;  
    45         startNode = (leftToRight) ? userSelection.anchorNode.parentNode : userSelection.focusNode.parentNode ;  
       
    46         // GIB: when selecting amath, we should go up in the dom to find the accurate start/end Nodes
       
    47         if (startNode.nodeName == 'mi' || startNode.nodeName == 'mo') {
       
    48           startNode = startNode.parentElement.parentElement.parentElement.parentElement;
       
    49         }
    46         innerStartNode = (leftToRight) ? userSelection.anchorNode : userSelection.focusNode ;
    50         innerStartNode = (leftToRight) ? userSelection.anchorNode : userSelection.focusNode ;
    47         endNode = (leftToRight) ? userSelection.focusNode.parentNode : userSelection.anchorNode.parentNode;
    51         endNode = (leftToRight) ? userSelection.focusNode.parentNode : userSelection.anchorNode.parentNode;
       
    52         // GIB: when selecting amath, we should go up in the dom to find the accurate start/end Nodes
       
    53         if (endNode.nodeName == 'mi' || endNode.nodeName == 'mo') {
       
    54           endNode = endNode.parentElement.parentElement.parentElement.parentElement;
       
    55         }
    48         innerEndNode = (leftToRight) ? userSelection.focusNode : userSelection.anchorNode;
    56         innerEndNode = (leftToRight) ? userSelection.focusNode : userSelection.anchorNode;
    49           
    57           
    50         startOffset = (leftToRight) ? userSelection.anchorOffset : userSelection.focusOffset;
    58         startOffset = (leftToRight) ? userSelection.anchorOffset : userSelection.focusOffset;
    51         endOffset = (leftToRight) ? userSelection.focusOffset : userSelection.anchorOffset ;
    59         endOffset = (leftToRight) ? userSelection.focusOffset : userSelection.anchorOffset ;
    52 
    60