Trevor PaughSystems engineer
Trevor PaughProject Chronicles

Chronicles / Eboda Gymnast

Editing text that was flattened

Milestone

The first slice past version one. Edit mode now reaches text drawn inside nested forms, which is where the app's own Flatten puts every filled field value, two levels deep. Asked for the evening the roadmap closed, built in one evening, one review round, merged. Two decisions: a nested form is editable only when it is drawn exactly once in the file, and encrypted files opened without a password are editable when their permissions allow it.

Version one closed with six verbs. The same evening, the owner tried to edit a form they had flattened and found the text untouchable. The question in the pull quote became slice six, with a second line: get it done quickly, please.

Why it did not work

When the app flattens a form, the rendering engine draws each field’s value as a small nested form of its own, two levels below the page. Edit mode had only ever looked at the page’s top level, so flattened values were visible but not editable.

What was built

Edit mode now follows text into those nested forms. The builder had it working in one evening. Review found one regression, synthetic-italic text coming back at the wrong size, fixed within the hour, and the slice merged with a new executable handed to the owner.

Two decisions

A nested form is editable only when every form on its chain is drawn exactly once in the file. Shared graphics, such as a logo stamped on every page, are refused with a plain message. The alternative, copying the form before editing so the other pages keep theirs, was judged more code and more risk than the case deserves today, and parked.

Encrypted files opened without a password are now editable when the file’s permissions allow modification, with anything the app appends encrypted under the file’s own key. A flattened form is often also an encrypted one, so without this the slice would have helped fewer of the owner’s own documents.