X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/436728b375888873e6e96079a73f12d8adbd7b96..34c9285ef29074d0c13cea81fbb05e93eb369b4a:/src/editor/modules/documentCanvas/canvas/utils.js diff --git a/src/editor/modules/documentCanvas/canvas/utils.js b/src/editor/modules/documentCanvas/canvas/utils.js index 62845e3..130d51c 100644 --- a/src/editor/modules/documentCanvas/canvas/utils.js +++ b/src/editor/modules/documentCanvas/canvas/utils.js @@ -21,13 +21,26 @@ var nearestInDocumentOrder = function(selector, direction, element) { }; -var getElementForNode = function(node) { - - var ptr = node.nodeType === Node.TEXT_NODE ? node.parent() : node; - while(!ptr.getData('canvasElement')) { - ptr = ptr.parent(); +var getElementForNode = function(node, withParent) { + if(node.nodeType === Node.TEXT_NODE) { + return _getElementForTextNode(node, withParent); } - return ptr.getData('canvasElement'); + while(!node.getData('canvasElement')) { + node = node.parent(); + } + return node.getData('canvasElement'); +}; + +var _getElementForTextNode = function(textNode, withParent) { + var parentElement = getElementForNode(withParent || textNode.parent()), + toret; + parentElement.children().some(function(child) { + if(child.wlxmlNode.sameNode(textNode)) { + toret = child; + return true; + } + }); + return toret; }; var getElementForDetachedNode = function(node, originalParent) { @@ -41,17 +54,7 @@ var getElementForDetachedNode = function(node, originalParent) { return ptr.getData('canvasElement'); }; -var getElementForTextNode = function(textNode) { - var parentElement = getElementForNode(textNode.parent()), - toret; - parentElement.children().some(function(child) { - if(child.wlxmlNode.sameNode(textNode)) { - toret = child; - return true; - } - }); - return toret; -}; + return { nearestInDocumentOrder: nearestInDocumentOrder, @@ -59,8 +62,7 @@ return { ZWS: '\u200B' }, getElementForNode: getElementForNode, - getElementForDetachedNode: getElementForDetachedNode, - getElementForTextNode: getElementForTextNode + getElementForDetachedNode: getElementForDetachedNode }; });