From 95f0dc2dc74401a097105fcfe745aba3e571d9c4 Mon Sep 17 00:00:00 2001 From: Khaled Hosny Date: Fri, 30 Dec 2022 18:56:41 +0200 Subject: [PATCH] tdf#152737: Fix off-by-one errors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Regressions from: commit 718af940435ae9d2ac90374e5880ecb38e96252c Author: Khaled Hosny Date: Fri Dec 16 00:10:34 2022 +0200 tdf#152533: Improve script handling in font preview and: commit bfecacb2487ba9470600e6f64056d9b1816ee96b Author: Khaled Hosny Date: Thu Dec 15 22:51:54 2022 +0200 tdf#152460: Improve script handling in style previews Change-Id: I7b12f5accbd65459d724676efb7bec947a7faaa0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144880 Tested-by: Jenkins Reviewed-by: خالد حسني --- svx/source/dialog/fntctrl.cxx | 4 +++- svx/source/styles/CommonStylePreviewRenderer.cxx | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/svx/source/dialog/fntctrl.cxx b/svx/source/dialog/fntctrl.cxx index 0712bbe92496..de39993061fd 100644 --- a/svx/source/dialog/fntctrl.cxx +++ b/svx/source/dialog/fntctrl.cxx @@ -250,7 +250,9 @@ void FontPrevWin_Impl::CheckScript() for (sal_Int32 i = 1; i <= maScriptText.getLength(); i++) { auto aNextScript = aEditEngine.GetScriptType({ 0, i, 0, i }); - if (aNextScript != aScript || i == maScriptText.getLength()) + if (aNextScript != aScript) + maScriptChanges.emplace_back(aScript, i - 1); + else if (i == maScriptText.getLength()) maScriptChanges.emplace_back(aScript, i); aScript = aNextScript; } diff --git a/svx/source/styles/CommonStylePreviewRenderer.cxx b/svx/source/styles/CommonStylePreviewRenderer.cxx index 9ddf3cf15017..0ca34abe9a36 100644 --- a/svx/source/styles/CommonStylePreviewRenderer.cxx +++ b/svx/source/styles/CommonStylePreviewRenderer.cxx @@ -418,7 +418,9 @@ void CommonStylePreviewRenderer::CheckScript() for (sal_Int32 i = 1; i <= maScriptText.getLength(); i++) { auto aNextScript = aEditEngine.GetScriptType({ 0, i, 0, i }); - if (aNextScript != aScript || i == maScriptText.getLength()) + if (aNextScript != aScript) + maScriptChanges.emplace_back(aScript, i - 1); + else if (i == maScriptText.getLength()) maScriptChanges.emplace_back(aScript, i); aScript = aNextScript; }