diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index 4e62b35287..721c56b702 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -4093,6 +4093,7 @@ public class FragmentCompose extends FragmentBase { else b = HtmlHelper.sanitizeCompose(context, body, true); + int revision = draft.revision; // Save for undo/redo if (dirty || TextUtils.isEmpty(body) || !b.body().html().equals(doc.body().html()) || @@ -4125,10 +4126,8 @@ public class FragmentCompose extends FragmentBase { body = d.html(); // Create new revision - if (action != R.id.action_undo && action != R.id.action_redo) { - draft.revisions++; - draft.revision = draft.revisions; - } + draft.revisions++; + draft.revision = draft.revisions; Helper.writeText(draft.getFile(context, draft.revision), body); } else @@ -4136,11 +4135,15 @@ public class FragmentCompose extends FragmentBase { if (action == R.id.action_undo || action == R.id.action_redo) { if (action == R.id.action_undo) { - if (draft.revision > 1) - draft.revision--; + if (!dirty && revision > 1) + draft.revision = revision - 1; + else + draft.revision = revision; } else { - if (draft.revision < draft.revisions) - draft.revision++; + if (revision < draft.revisions) + draft.revision = revision + 1; + else + draft.revision = revision; } // Restore revision