From c2f46e6df4a80a313ab4329b740770dbdfbe1578 Mon Sep 17 00:00:00 2001
From: John MacFarlane <jgm@berkeley.edu>
Date: Sun, 30 May 2021 10:07:28 -0700
Subject: [PATCH] Docx writer: fix regression on captions.

The "Table Caption" style was no longer getting applied.
(It was overwritten by "Compact.")

Closes #7328.
---
 src/Text/Pandoc/Writers/Docx/Table.hs | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/Text/Pandoc/Writers/Docx/Table.hs b/src/Text/Pandoc/Writers/Docx/Table.hs
index e7fc82a10..13cb31040 100644
--- a/src/Text/Pandoc/Writers/Docx/Table.hs
+++ b/src/Text/Pandoc/Writers/Docx/Table.hs
@@ -33,7 +33,6 @@ tableToOpenXML :: PandocMonad m
                -> WS m [Content]
 tableToOpenXML blocksToOpenXML gridTable = do
   setFirstPara
-  modify $ \s -> s { stInTable = True }
   let (Grid.Table _attr caption colspecs _rowheads thead tbodies tfoot) =
         gridTable
   let (Caption _maybeShortCaption captionBlocks) = caption
@@ -43,6 +42,9 @@ tableToOpenXML blocksToOpenXML gridTable = do
                 then return []
                 else withParaPropM (pStyleM "Table Caption")
                      $ blocksToOpenXML captionBlocks
+  -- We set "in table" after processing the caption, because we don't
+  -- want the "Table Caption" style to be overwritten with "Compact".
+  modify $ \s -> s { stInTable = True }
   head' <- cellGridToOpenXML blocksToOpenXML HeadRow aligns thead
   bodies <- mapM (cellGridToOpenXML blocksToOpenXML BodyRow aligns) tbodies
   foot' <- cellGridToOpenXML blocksToOpenXML FootRow aligns tfoot