From e49c4bc7fe0e9a33d20bd783f427e5f1b97af529 Mon Sep 17 00:00:00 2001 From: Alexey Nagaev Date: Thu, 15 Jan 2026 13:30:27 +0300 Subject: [PATCH] Fix calcucaltion bug --- DocxRenderer/src/logic/Page.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/DocxRenderer/src/logic/Page.cpp b/DocxRenderer/src/logic/Page.cpp index 62e6df424f..181d971192 100644 --- a/DocxRenderer/src/logic/Page.cpp +++ b/DocxRenderer/src/logic/Page.cpp @@ -1547,6 +1547,18 @@ namespace NSDocxRenderer v_type == eVerticalCrossingType::vctNoCrossingCurrentBelowNext; }; + auto calc_selected = [this] (cont_ptr_t cont) { + if (m_bUseDefaultFont) + { + cont->m_oSelectedSizes.dHeight = cont->m_dHeight; + cont->m_oSelectedSizes.dWidth = cont->m_dWidth; + } + else + { + cont->CalcSelected(); + } + }; + // линии из которых сделаем шейпы for (size_t index = 0; index < m_arTextLines.size(); ++index) { @@ -1571,10 +1583,10 @@ namespace NSDocxRenderer curr_line->CalcFirstWordWidth(); for (auto& cont : prev_line->m_arConts) - cont->CalcSelected(); + calc_selected(cont); for (auto& cont : curr_line->m_arConts) - cont->CalcSelected(); + calc_selected(cont); m_arShapes.push_back(CreateSingleLineShape(prev_line)); m_arShapes.push_back(CreateSingleLineShape(curr_line));