editor: Properly adjust cursor on delete

Signed-off-by: Jan Arne Petersen <jpetersen@openismus.com>
diff --git a/clients/editor.c b/clients/editor.c
index 16ede4f..35f6d08 100644
--- a/clients/editor.c
+++ b/clients/editor.c
@@ -837,16 +837,19 @@
 {
 	uint32_t l;
 
-	if (entry->cursor > index)
-		entry->cursor -= length;
-
-	entry->anchor = entry->cursor;
 
 	l = strlen(entry->text + index + length);
 	memmove(entry->text + index,
 		entry->text + index + length,
 		l + 1);
 
+	if (entry->cursor > (index + length))
+		entry->cursor -= length;
+	else if (entry->cursor > index)
+		entry->cursor = index;
+
+	entry->anchor = entry->cursor;
+
 	text_entry_update_layout(entry);
 
 	widget_schedule_redraw(entry->widget);