From c90f4bee62942e9b59e6dbe738920e455d0c872a Mon Sep 17 00:00:00 2001 From: Alf Eaton Date: Thu, 17 Aug 2023 11:01:58 +0100 Subject: [PATCH] [visual] Only use the first document environment when calculating the preamble (#14343) GitOrigin-RevId: fc7cb26f2e71bd1142f0269b7b95cacad3cf10a5 --- .../extensions/visual/atomic-decorations.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/services/web/frontend/js/features/source-editor/extensions/visual/atomic-decorations.ts b/services/web/frontend/js/features/source-editor/extensions/visual/atomic-decorations.ts index 3a90a7d4fe..035fdf98c7 100644 --- a/services/web/frontend/js/features/source-editor/extensions/visual/atomic-decorations.ts +++ b/services/web/frontend/js/features/source-editor/extensions/visual/atomic-decorations.ts @@ -188,13 +188,19 @@ export const atomicDecorations = (options: Options) => { currentOrdinal = ordinalStack.pop() ?? 0 } + let seenDocumentEnvironment = false + tree.iterate({ enter(nodeRef) { if (nodeRef.node.type.is('Maketitle')) { preamble.to = nodeRef.node.from } else if (nodeRef.node.type.is('DocumentEnvironment')) { - preamble.to = - nodeRef.node.getChild('Content')?.from ?? nodeRef.node.from + // only count the first instance of DocumentEnvironment + if (!seenDocumentEnvironment) { + preamble.to = + nodeRef.node.getChild('Content')?.from ?? nodeRef.node.from + seenDocumentEnvironment = true + } } else if (nodeRef.node.type.is('Title')) { const node = nodeRef.node.getChild('TextArgument') if (node) {