@@ -1282,15 +1282,16 @@ fitToPage (x, y) pageWidth
1283withDirection :: WS a -> WS a
1283withDirection :: WS a -> WS a
1284withDirection x = do
1284withDirection x = do
1285− isDir <- asks envRTL
1285+ isRTL <- asks envRTL
1286 paraProps <- asks envParaProperties
1286 paraProps <- asks envParaProperties
1287 textProps <- asks envTextProperties
1287 textProps <- asks envTextProperties
1288− -- we have to do this because we don't want to accumulate these
1288+ -- We want to clean all bidirection (bidi) and right-to-left (rtl)
1289− -- properties if we have it set while the environment is already
1289+ -- properties from the props first. This is because we don't want
1290− -- active.
1290+ -- them to stack up.
1291 let paraProps' = filter (\e -> (qName . elName) e /= "bidi") paraProps
1291 let paraProps' = filter (\e -> (qName . elName) e /= "bidi") paraProps
1292 textProps' = filter (\e -> (qName . elName) e /= "rtl") textProps
1292 textProps' = filter (\e -> (qName . elName) e /= "rtl") textProps
1293− if isDir
1293+ if isRTL
1294+ -- if we are going right-to-left, we (re?)add the properties.
1294 then flip local x $
1295 then flip local x $
1295 \env -> env { envParaProperties = (mknode "w:bidi" [] ()) : paraProps'
1296 \env -> env { envParaProperties = (mknode "w:bidi" [] ()) : paraProps'
1296 , envTextProperties = (mknode "w:rtl" [] ()) : textProps'
1297 , envTextProperties = (mknode "w:rtl" [] ()) : textProps'