summaryrefslogtreecommitdiff
path: root/include/tools/gen.hxx
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2021-08-17 11:18:39 +0300
committerMike Kaganski <mike.kaganski@collabora.com>2021-08-17 22:32:22 +0200
commit17f524a37c81a05e6d448a7186df858a69ada635 (patch)
treeef6e48e8ba4850788e6773d5a438031b862cdd01 /include/tools/gen.hxx
parente8180aa5e7c03fe62d958e9e147136abd99ddf82 (diff)
Fix o3tl::convert for Rectangle, to operate on right/bottom values
... instead of using confusing/ambiguous size having two interpretations. This reverts some of the unit test changes made in commit fa339b3adb53300ae68913bed87e18caf9f2e262. Change-Id: Ic56417703e32c1d92bcee76ad8ff494824bd4a1f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120564 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Diffstat (limited to 'include/tools/gen.hxx')
-rw-r--r--include/tools/gen.hxx11
1 files changed, 9 insertions, 2 deletions
diff --git a/include/tools/gen.hxx b/include/tools/gen.hxx
index a9cf170952e6..e68b850b78cb 100644
--- a/include/tools/gen.hxx
+++ b/include/tools/gen.hxx
@@ -722,8 +722,15 @@ namespace o3tl
constexpr tools::Rectangle convert(const tools::Rectangle& rRectangle, o3tl::Length eFrom, o3tl::Length eTo)
{
- return tools::Rectangle(o3tl::convert(rRectangle.TopLeft(), eFrom, eTo),
- o3tl::convert(rRectangle.GetSize(), eFrom, eTo));
+ // 1. Create an empty rectangle with correct left and top
+ tools::Rectangle aRect(o3tl::convert(rRectangle.Left(), eFrom, eTo),
+ o3tl::convert(rRectangle.Top(), eFrom, eTo));
+ // 2. If source has width/heigth, set respective right and bottom
+ if (!rRectangle.IsWidthEmpty())
+ aRect.SetRight(o3tl::convert(rRectangle.Right(), eFrom, eTo));
+ if (!rRectangle.IsHeightEmpty())
+ aRect.SetBottom(o3tl::convert(rRectangle.Bottom(), eFrom, eTo));
+ return aRect;
}
} // end o3tl