provide the current node as selected object if only text is selected
Signed-off-by: Florian Thienel <florian@thienel.org>
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/widget/swt/VexSelection.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/widget/swt/VexSelection.java
index f462108..5e19928 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/widget/swt/VexSelection.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/widget/swt/VexSelection.java
@@ -38,7 +38,7 @@
@Override
public boolean isEmpty() {
- return true;
+ return false;
}
@Override
@@ -52,21 +52,25 @@
}
public INode getFirstElement() {
- if (selectedFragment == null) {
+ if (!isStructureSelected()) {
return currentNode;
}
return selectedFragment.children().first();
}
+ private boolean isStructureSelected() {
+ return selectedFragment != null && !selectedFragment.children().withoutText().isEmpty();
+ }
+
public Iterator<INode> iterator() {
- if (selectedFragment == null) {
+ if (!isStructureSelected()) {
return Collections.singletonList(currentNode).iterator();
}
return selectedFragment.children().iterator();
}
public int size() {
- if (selectedFragment == null) {
+ if (!isStructureSelected()) {
return 1;
}
return selectedFragment.children().count();
@@ -77,7 +81,7 @@
}
public List<INode> toList() {
- if (selectedFragment == null) {
+ if (!isStructureSelected()) {
return Collections.singletonList(currentNode);
}
return selectedFragment.children().asList();