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