[Libreoffice-commits] core.git: sfx2/source
Onur Yilmaz (via logerrit)
logerrit at kemper.freedesktop.org
Tue Jan 28 07:35:54 UTC 2020
sfx2/source/doc/SfxRedactionHelper.cxx | 20 +++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)
New commits:
commit 0025b74e8099ed79e7824a8d22335e882e0c635c
Author: Onur Yilmaz <onuryilmaz0750 at gmail.com>
AuthorDate: Sun Jan 26 01:04:50 2020 +0300
Commit: Muhammet Kara <muhammet.kara at collabora.com>
CommitDate: Tue Jan 28 08:35:21 2020 +0100
tdf#127169: Auto-redaction doesn't cover the title completely
Change-Id: I5283ce535f436f066859467cf6ef50ee9a2d2fdd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87436
Tested-by: Jenkins
Reviewed-by: Muhammet Kara <muhammet.kara at collabora.com>
diff --git a/sfx2/source/doc/SfxRedactionHelper.cxx b/sfx2/source/doc/SfxRedactionHelper.cxx
index bbcdeac79401..408c733c77e9 100644
--- a/sfx2/source/doc/SfxRedactionHelper.cxx
+++ b/sfx2/source/doc/SfxRedactionHelper.cxx
@@ -156,9 +156,6 @@ tools::Rectangle ImplCalcActionBounds(const MetaAction& rAct, const OutputDevice
aActionBounds.SetLeft(rOut.PixelToLogic(aBoundRect1).getX()
+ rOut.PixelToLogic(aBoundRect1).getWidth());
}
-
- // FIXME: Is this really needed?
- aActionBounds.SetTop(aActionBounds.getY() + 100);
}
}
break;
@@ -425,14 +422,15 @@ void SfxRedactionHelper::searchInMetaFile(const RedactionTarget* pRedactionTarge
fillSearchOptions(aSearchOptions, pRedactionTarget);
utl::TextSearch textSearch(aSearchOptions);
+ static long aLastFontHeight = 0;
MetaAction* pCurrAct;
- // Watch for TEXTARRAY actions.
- // They contain the text of paragraphs.
for (pCurrAct = const_cast<GDIMetaFile&>(rMtf).FirstAction(); pCurrAct;
pCurrAct = const_cast<GDIMetaFile&>(rMtf).NextAction())
{
+ // Watch for TEXTARRAY actions.
+ // They contain the text of paragraphs.
if (pCurrAct->GetType() == MetaActionType::TEXTARRAY)
{
MetaTextArrayAction* pMetaTextArrayAction = static_cast<MetaTextArrayAction*>(pCurrAct);
@@ -453,7 +451,14 @@ void SfxRedactionHelper::searchInMetaFile(const RedactionTarget* pRedactionTarge
ImplCalcActionBounds(*pMetaTextArrayAction, *pOutputDevice, nStart, nEnd));
if (!aNewRect.IsEmpty())
+ {
+ // Calculate the difference between current wrong value and value should it be.
+ // Add the difference to current value.
+ // Then increase 10% of the new value to make it look better.
+ aNewRect.SetTop(aNewRect.getY() + (aNewRect.getHeight() - aLastFontHeight)
+ - aLastFontHeight / 10);
aRedactionRectangles.push_back(aNewRect);
+ }
// Search for the next occurrence
nStart = nEnd;
@@ -461,6 +466,11 @@ void SfxRedactionHelper::searchInMetaFile(const RedactionTarget* pRedactionTarge
bFound = textSearch.SearchForward(sText, &nStart, &nEnd);
}
}
+ else if (pCurrAct->GetType() == MetaActionType::FONT)
+ {
+ const MetaFontAction* pFontAct = static_cast<const MetaFontAction*>(pCurrAct);
+ aLastFontHeight = pFontAct->GetFont().GetFontSize().getHeight();
+ }
}
}
More information about the Libreoffice-commits
mailing list