--- a/src/cm/media/js/client/c_selection.js Mon Jan 23 11:14:44 2012 +0100
+++ b/src/cm/media/js/client/c_selection.js Fri Jan 27 11:37:22 2012 +0100
@@ -43,8 +43,16 @@
var leftToRight = (r2.compareBoundaryPoints(2, r1) == 1) ; // 2 is for END_TO_END
// CY.log("leftToRight : " + leftToRight) ;
startNode = (leftToRight) ? userSelection.anchorNode.parentNode : userSelection.focusNode.parentNode ;
+ // GIB: when selecting amath, we should go up in the dom to find the accurate start/end Nodes
+ if (startNode.nodeName == 'mi' || startNode.nodeName == 'mo') {
+ startNode = startNode.parentElement.parentElement.parentElement.parentElement;
+ }
innerStartNode = (leftToRight) ? userSelection.anchorNode : userSelection.focusNode ;
endNode = (leftToRight) ? userSelection.focusNode.parentNode : userSelection.anchorNode.parentNode;
+ // GIB: when selecting amath, we should go up in the dom to find the accurate start/end Nodes
+ if (endNode.nodeName == 'mi' || endNode.nodeName == 'mo') {
+ endNode = endNode.parentElement.parentElement.parentElement.parentElement;
+ }
innerEndNode = (leftToRight) ? userSelection.focusNode : userSelection.anchorNode;
startOffset = (leftToRight) ? userSelection.anchorOffset : userSelection.focusOffset;