X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/e1e728df4cd9e96c5865fcec0762eaaf5b37a3f7..cef69fff5322bdc7766d7063809694f6ee0e9e47:/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 130d51c..4e262a0 100644 --- a/src/editor/modules/documentCanvas/canvas/utils.js +++ b/src/editor/modules/documentCanvas/canvas/utils.js @@ -20,6 +20,24 @@ var nearestInDocumentOrder = function(selector, direction, element) { return null; }; +var getElementForElementRootNode = function(node, withParent) { + if(node.nodeType === Node.TEXT_NODE) { + return _getElementForRootTextNode(node, withParent); + } + return node.getData('canvasElement'); +}; + +var _getElementForRootTextNode = 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 getElementForNode = function(node, withParent) { if(node.nodeType === Node.TEXT_NODE) { @@ -40,7 +58,7 @@ var _getElementForTextNode = function(textNode, withParent) { return true; } }); - return toret; + return toret || parentElement; }; var getElementForDetachedNode = function(node, originalParent) { @@ -62,7 +80,8 @@ return { ZWS: '\u200B' }, getElementForNode: getElementForNode, - getElementForDetachedNode: getElementForDetachedNode + getElementForDetachedNode: getElementForDetachedNode, + getElementForElementRootNode: getElementForElementRootNode }; });