Blob Blame History Raw
From a3f67c5f1cff926904d73603fee7a0b142d5f126 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Thu, 22 Jan 2015 14:37:29 +0000
Subject: [PATCH] Resolves: fdo#88378 flipping by reversing co-ord system no
 longer works

not entirely sure when this stopped working, but our contempory code is riddled
with asserts and throws for negative sizes so rework this to explicitly mirror
the preview rather than try the no longer working technique

Change-Id: Ie90283cad2797ab1c37848469b007dc01a2c9d75
(cherry picked from commit a8835936e9d3e19443c63b7b365174254741cf76)
---
 sw/source/ui/frmdlg/frmpage.cxx | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/sw/source/ui/frmdlg/frmpage.cxx b/sw/source/ui/frmdlg/frmpage.cxx
index cd22bb5..e42f13a 100644
--- a/sw/source/ui/frmdlg/frmpage.cxx
+++ b/sw/source/ui/frmdlg/frmpage.cxx
@@ -2654,25 +2654,25 @@ void BmpWindow::Paint( const Rectangle& )
             aPntPos.X() += nWidth - aPntSz.Width() ;
     }
 
-    if ( bHorz )
-    {
-        aPntPos.Y()     += aPntSz.Height();
-        aPntPos.Y() --;
-        aPntSz.Height() *= -1;
-    }
-    if ( bVert )
-    {
-        aPntPos.X()     += aPntSz.Width();
-        aPntPos.X()--;
-        aPntSz.Width()  *= -1;
-    }
-
     // #i119307# clear window background, the graphic might have transparency
     DrawRect(Rectangle(aPntPos, aPntSz));
 
-    if ( bGraphic )
+    if (bHorz || bVert)
+    {
+        BitmapEx aTmpBmp(bGraphic ? aGraphic.GetBitmapEx() : aBmp);
+        sal_uLong nMirrorFlags(BMP_MIRROR_NONE);
+        if (bHorz)
+            nMirrorFlags |= BMP_MIRROR_VERT;
+        if (bVert)
+            nMirrorFlags |= BMP_MIRROR_HORZ;
+        aTmpBmp.Mirror(nMirrorFlags);
+        DrawBitmapEx( aPntPos, aPntSz, aTmpBmp );
+    }
+    else if (bGraphic)  //draw unmirrored preview graphic
+    {
         aGraphic.Draw( this, aPntPos, aPntSz );
-    else
+    }
+    else    //draw unmirrored stock sample image
     {
         DrawBitmapEx( aPntPos, aPntSz, aBmp );
     }
-- 
1.9.3