diff --git a/ivette/src/dome/renderer/text/editor.tsx b/ivette/src/dome/renderer/text/editor.tsx
index 5652c4638e0c73c770be2f2130acaebc7443d404..9a2dda30d69c905b85370b7955bae8b7f08ef523 100644
--- a/ivette/src/dome/renderer/text/editor.tsx
+++ b/ivette/src/dome/renderer/text/editor.tsx
@@ -331,8 +331,8 @@ function createSelectionField(): Field<EditorSelection> {
   const cursor = EditorSelection.cursor(0);
   const field = createField<EditorSelection>(EditorSelection.create([cursor]));
   const set: Set<EditorSelection> = (view, selection) => {
-    field.set(view, selection);
     view?.dispatch({ selection });
+    field.set(view, selection);
   }
   const updater = EditorView.updateListener.of((update) => {
     if (update.selectionSet) field.set(update.view, update.state.selection);
@@ -344,16 +344,14 @@ function createSelectionField(): Field<EditorSelection> {
 export type ToString<A> = (text: A) => string;
 export function createTextField<A>(init: A, toString: ToString<A>): Field<A> {
   const field = createField<A>(init);
-  const isUpdated: IsUpdated = (u) =>
-    field.isUpdated(u) && u.startState.doc.length !== 0;
   const set: Set<A> = (view, text) => {
-    field.set(view, text);
     const selection = { anchor: 0 };
     const length = view?.state.doc.length;
     const changes = { from: 0, to: length, insert: toString(text) };
     view?.dispatch({ changes, selection });
+    field.set(view, text);
   };
-  return { ...field, set, isUpdated };
+  return { ...field, set };
 }
 
 // An extension displaying line numbers in a gutter. Does not display anything