diff options
author | Mike Kaganski <mike.kaganski@collabora.com> | 2021-08-17 11:18:39 +0300 |
---|---|---|
committer | Mike Kaganski <mike.kaganski@collabora.com> | 2021-08-17 22:32:22 +0200 |
commit | 17f524a37c81a05e6d448a7186df858a69ada635 (patch) | |
tree | ef6e48e8ba4850788e6773d5a438031b862cdd01 /include/tools | |
parent | e8180aa5e7c03fe62d958e9e147136abd99ddf82 (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')
-rw-r--r-- | include/tools/gen.hxx | 11 |
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 |