if we have no current node, we use the document as fallback
Signed-off-by: Florian Thienel <florian@thienel.org>
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/widget/DocumentEditor.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/widget/DocumentEditor.java
index 979565e..df7c3d1 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/widget/DocumentEditor.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/widget/DocumentEditor.java
@@ -279,16 +279,13 @@
@Override
public ContentPosition getCaretPosition() {
- return new ContentPosition(getCurrentNode(), cursor.getOffset());
+ final INode currentNode = getCurrentNode();
+ return new ContentPosition(currentNode, cursor.getOffset());
}
@Override
public IElement getCurrentElement() {
- final INode currentNode = getCurrentNode();
- if (currentNode == null) {
- return null;
- }
- return currentNode.accept(new BaseNodeVisitorWithResult<IElement>(null) {
+ return getCurrentNode().accept(new BaseNodeVisitorWithResult<IElement>(null) {
@Override
public IElement visit(final IElement element) {
return element;
@@ -313,7 +310,11 @@
@Override
public INode getCurrentNode() {
- return document.getNodeForInsertionAt(cursor.getOffset());
+ final INode currentNode = document.getNodeForInsertionAt(cursor.getOffset());
+ if (currentNode == null) {
+ return document;
+ }
+ return currentNode;
}
@Override