var node;
if(fragment instanceof fragment.RangeFragment && fragment.hasSiblingBoundries()) {
- return fragment.boundriesSiblingParents();
+ return fragment.startNode.hasSameContextRoot(fragment.endNode) && fragment.boundriesSiblingParents();
}
if(fragment instanceof fragment.NodeFragment) {
node = fragment.node.getNearestElementNode();
+ if(node.isContextRoot()) {
+ node = fragment.node;
+ }
+
return {
node1: node,
node2: node
item1 = list.object.getItem(0),
text = item1 ? item1.contents()[0] : undefined, //
doc = boundries.node1.document;
-
- return doc.createFragment(doc.CaretFragment, {node: text, offset:0});
+ if(text) {
+ return doc.createFragment(doc.CaretFragment, {node: text, offset:0});
+ }
}, {
metadata: {
description: action.getState().description,
}
var boundries = getBoundriesForAList(params.fragment);
- if(boundries) {
+ if(boundries && boundries.node1.hasSameContextRoot(boundries.node2)) {
return {
allowed: true,
description: interpolate(gettext('Make %s fragment(s) into list'), [countItems(getBoundriesForAList(params.fragment))]),