sc/qa/uitest/calc_tests8/tdf54768.py |   32 ++++++++++++++++++++++++++++++++
 sc/qa/uitest/data/tdf54768.ods       |binary
 sc/source/ui/view/drawvie4.cxx       |   16 ++++------------
 3 files changed, 36 insertions(+), 12 deletions(-)

New commits:
commit f5bf91ea73bf8a7cd3abc0f343ab2bdceaad905a
Author:     Tibor Nagy <nagy.tib...@nisz.hu>
AuthorDate: Thu Jun 22 09:53:59 2023 +0200
Commit:     László Németh <nem...@numbertext.org>
CommitDate: Tue Jun 27 14:18:42 2023 +0200

    tdf#54768 sc: fix resizing of cropped images to original size
    
    This is a follow up to commit a4e12cbfc69cfe668fa30756a3c5843e911e22b1
    (tdf#155863 sd: fix resizing of cropped images to original size)
    
    Change-Id: I923ed8b1df6c6559d527d43e4abe842497c4c28f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153449
    Tested-by: László Németh <nem...@numbertext.org>
    Reviewed-by: László Németh <nem...@numbertext.org>

diff --git a/sc/qa/uitest/calc_tests8/tdf54768.py 
b/sc/qa/uitest/calc_tests8/tdf54768.py
new file mode 100644
index 000000000000..a4342fb8e238
--- /dev/null
+++ b/sc/qa/uitest/calc_tests8/tdf54768.py
@@ -0,0 +1,32 @@
+# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+from uitest.framework import UITestCase
+from libreoffice.uno.propertyvalue import mkPropertyValues
+from uitest.uihelper.common import get_url_for_data_file
+
+class tdf54768(UITestCase):
+    def test_tdf54768(self):
+        # This document contains an image with an original size of 7.99cm x 
5.74cm.
+        # The image has been cropped 2.73cm at the top.
+        # Also, it has been resized to a width of 4.04cm.
+        with self.ui_test.load_file(get_url_for_data_file("tdf54768.ods")) as 
document:
+            xGridWin = self.xUITest.getTopFocusWindow().getChild("grid_window")
+
+            # select the image
+            xGridWin.executeAction("SELECT", 
mkPropertyValues({"OBJECT":"Image"}))
+
+            # click "Original Size"
+            self.xUITest.executeCommand(".uno:OriginalSize")
+
+            # tdf#155863: Without the fix in place, the image stays cropped,
+            #             but stretches to the size of original image
+            self.assertEqual(7988, 
document.DrawPages[0].getByIndex(0).Size.Width)
+            self.assertEqual(3005, 
document.DrawPages[0].getByIndex(0).Size.Height)
+
+# vim: set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/sc/qa/uitest/data/tdf54768.ods b/sc/qa/uitest/data/tdf54768.ods
new file mode 100644
index 000000000000..222481db8bb0
Binary files /dev/null and b/sc/qa/uitest/data/tdf54768.ods differ
diff --git a/sc/source/ui/view/drawvie4.cxx b/sc/source/ui/view/drawvie4.cxx
index 5cc1655b83c4..2bd329098206 100644
--- a/sc/source/ui/view/drawvie4.cxx
+++ b/sc/source/ui/view/drawvie4.cxx
@@ -476,9 +476,9 @@ void ScDrawView::SetMarkedOriginalSize()
         }
         else if (nIdent == SdrObjKind::Graphic)
         {
-            const Graphic& rGraphic = 
static_cast<SdrGrafObj*>(pObj)->GetGraphic();
+            const SdrGrafObj* pSdrGrafObj = static_cast<const 
SdrGrafObj*>(pObj);
 
-            MapMode aSourceMap = rGraphic.GetPrefMapMode();
+            MapMode aSourceMap = pSdrGrafObj->GetGraphic().GetPrefMapMode();
             MapMode aDestMap( MapUnit::Map100thMM );
             if (aSourceMap.GetMapUnit() == MapUnit::MapPixel)
             {
@@ -488,16 +488,8 @@ void ScDrawView::SetMarkedOriginalSize()
                 aDestMap.SetScaleX(aNormScaleX);
                 aDestMap.SetScaleY(aNormScaleY);
             }
-            if (pViewData)
-            {
-                vcl::Window* pActWin = pViewData->GetActiveWin();
-                if (pActWin)
-                {
-                    aOriginalSize = pActWin->LogicToLogic(
-                                    rGraphic.GetPrefSize(), &aSourceMap, 
&aDestMap );
-                    bDo = true;
-                }
-            }
+            aOriginalSize = pSdrGrafObj->getOriginalSize();
+            bDo = true;
         }
 
         if ( bDo )

Reply via email to