diff options
author | Allan Sandfeld Jensen <[email protected]> | 2023-05-05 09:51:32 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <[email protected]> | 2023-05-08 18:29:22 +0000 |
commit | 7b7a01c266b507636eab51a36328c7c72d82d93c (patch) | |
tree | d819f398795ed7612e865ee812c281756247d0fd /src/gui/text/qtextlayout.cpp | |
parent | 1b736a815be0222f4b24289cf17575fc15707305 (diff) |
Fix specific overflow in qtextlayout
Adds qAddOverflow and qMulOverflow definitions to QFixed
Fixes: QTBUG-113337
Pick-to: 6.5 6.5.1 6.2 5.15
Change-Id: I13579306defceaccdc0fbb1ec0e9b77c6f8d1af9
Reviewed-by: Eirik Aavitsland <[email protected]>
Reviewed-by: Thiago Macieira <[email protected]>
Diffstat (limited to 'src/gui/text/qtextlayout.cpp')
-rw-r--r-- | src/gui/text/qtextlayout.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/gui/text/qtextlayout.cpp b/src/gui/text/qtextlayout.cpp index b8edea11d5f..611369951c7 100644 --- a/src/gui/text/qtextlayout.cpp +++ b/src/gui/text/qtextlayout.cpp @@ -2164,9 +2164,12 @@ found: eng->maxWidth = qMax(eng->maxWidth, line.textWidth); } else { eng->minWidth = qMax(eng->minWidth, lbh.minw); - eng->layoutData->currentMaxWidth += line.textWidth; - if (!manuallyWrapped) - eng->layoutData->currentMaxWidth += lbh.spaceData.textWidth; + if (qAddOverflow(eng->layoutData->currentMaxWidth, line.textWidth, &eng->layoutData->currentMaxWidth)) + eng->layoutData->currentMaxWidth = QFIXED_MAX; + if (!manuallyWrapped) { + if (qAddOverflow(eng->layoutData->currentMaxWidth, lbh.spaceData.textWidth, &eng->layoutData->currentMaxWidth)) + eng->layoutData->currentMaxWidth = QFIXED_MAX; + } eng->maxWidth = qMax(eng->maxWidth, eng->layoutData->currentMaxWidth); if (manuallyWrapped) eng->layoutData->currentMaxWidth = 0; |