[Libreoffice-commits] .: 16 commits - patches/dev300

Thorsten Behrens thorsten at kemper.freedesktop.org
Tue Oct 26 14:38:04 PDT 2010


 patches/dev300/apply                                     |   44 -
 patches/dev300/comphelper-msvc8-fix.diff                 |   46 -
 patches/dev300/cppcanvas-fix-roundcorners.diff           |   22 
 patches/dev300/officecfg-bighandles-default.diff         |   34 -
 patches/dev300/ppt-customshape-shading-fix.diff          |   45 -
 patches/dev300/sd-create-table-height-fix.diff           |   37 -
 patches/dev300/sd-customanimation-defbutton.diff         |   21 
 patches/dev300/sd-ruler-fix.diff                         |  135 -----
 patches/dev300/sd-view-zoom-fix.diff                     |   74 --
 patches/dev300/slideshow-cutblack.diff                   |  206 -------
 patches/dev300/solenv-installer-unopkg-call.diff         |   21 
 patches/dev300/svtools-update-ole.diff                   |   22 
 patches/dev300/svtools-wmf-clipperf.diff                 |  399 ---------------
 patches/dev300/svx-fontwork-crash-fix.diff               |   20 
 patches/dev300/svx-ppt-tablerow-height-fix.diff          |   20 
 patches/dev300/transogl-transitions-newsflash-pptin.diff |   24 
 patches/dev300/unoxml-boost-workaround.diff              |   29 -
 17 files changed, 3 insertions(+), 1196 deletions(-)

New commits:
commit 8f6a90fe2e05087e687128b691abaa296c3796dc
Author: Thorsten Behrens <tbehrens at novell.com>
Date:   Tue Oct 26 23:19:22 2010 +0200

    Moved svtools-wmf-clipperf.diff to git

diff --git a/patches/dev300/apply b/patches/dev300/apply
index 3189e0b..9a126fe 100755
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -2341,9 +2341,6 @@ vcl-gtk-process-events-on-exit.diff, rodo
 sfx2-add-to-recently-used-after-save.diff, rodo
 
 [ Fixes ]
-svtools-wmf-clipperf.diff, n#535304, thorsten
-
-[ Fixes ]
 # In some cases when exporting a PDF from a presentation, we are asked
 # to export an empty "link annotation", which gets turned into a
 # rather bogus file: link to the directory the presentadion document
diff --git a/patches/dev300/svtools-wmf-clipperf.diff b/patches/dev300/svtools-wmf-clipperf.diff
deleted file mode 100644
index d3a5323..0000000
--- a/patches/dev300/svtools-wmf-clipperf.diff
+++ /dev/null
@@ -1,399 +0,0 @@
-Use speedy basegfx clipper on wmf import
-
-From: Thorsten Behrens <thb at openoffice.org>
-
-
----
-
- svtools/source/filter.vcl/wmf/winmtf.cxx |  182 +++++++++++-------------------
- svtools/source/filter.vcl/wmf/winmtf.hxx |   38 +++---
- 2 files changed, 85 insertions(+), 135 deletions(-)
-
-
-diff --git svtools/source/filter.vcl/wmf/winmtf.cxx svtools/source/filter.vcl/wmf/winmtf.cxx
-index 3c7e25f..88d45ec 100644
---- svtools/source/filter.vcl/wmf/winmtf.cxx
-+++ svtools/source/filter.vcl/wmf/winmtf.cxx
-@@ -30,8 +30,11 @@
- 
- 
- #include "winmtf.hxx"
-+#include <basegfx/matrix/b2dhommatrix.hxx>
-+#include <basegfx/polygon/b2dpolypolygontools.hxx>
- #include <vcl/metaact.hxx>
- #include <vcl/graphictools.hxx>
-+#include <vcl/canvastools.hxx>
- #include <vcl/metric.hxx>
- #include <rtl/tencinfo.h>
- 
-@@ -42,103 +45,56 @@
- #define EMFP_DEBUG(x)
- //#define EMFP_DEBUG(x) x
- 
--void WinMtfClipPath::ImpUpdateType()
-+void WinMtfClipPath::intersectClipRect( const Rectangle& rRect )
- {
--    if ( !aPolyPoly.Count() )
--        eType = EMPTY;
--    else if ( aPolyPoly.IsRect() )
--        eType = RECTANGLE;
--    else
--        eType = COMPLEX;
--
--    bNeedsUpdate = sal_True;
-+    maClip.intersectRange(
-+        vcl::unotools::b2DRectangleFromRectangle(rRect));
- }
- 
--void WinMtfClipPath::IntersectClipRect( const Rectangle& rRect )
-+void WinMtfClipPath::excludeClipRect( const Rectangle& rRect )
- {
--    if ( !aPolyPoly.Count() )
--        aPolyPoly = Polygon( rRect );
--    else if ( nDepth < WIN_MTF_MAX_CLIP_DEPTH )
--    {
--        Polygon aPolygon( rRect );
--        PolyPolygon aIntersection;
--        PolyPolygon aPolyPolyRect( aPolygon );
--        aPolyPoly.GetIntersection( aPolyPolyRect, aIntersection );
--        aPolyPoly = aIntersection;
--        nDepth++;
--    }
--    ImpUpdateType();
-+    maClip.subtractRange(
-+        vcl::unotools::b2DRectangleFromRectangle(rRect));
- }
- 
--void WinMtfClipPath::ExcludeClipRect( const Rectangle& rRect )
-+void WinMtfClipPath::setClipPath( const PolyPolygon& rPolyPolygon, sal_Int32 nClippingMode )
- {
--    if ( aPolyPoly.Count() && ( nDepth < WIN_MTF_MAX_CLIP_DEPTH ) )
-+    const basegfx::B2DPolyPolygon& rB2DPoly=rPolyPolygon.getB2DPolyPolygon();
-+    switch ( nClippingMode )
-     {
--        Polygon aPolygon( rRect );
--        PolyPolygon aPolyPolyRect( aPolygon );
--        PolyPolygon aDifference;
--        aPolyPoly.GetDifference( aPolyPolyRect, aDifference );
--        aPolyPoly = aDifference;
--        nDepth++;
--    }
--    ImpUpdateType();
--}
--
--void WinMtfClipPath::SetClipPath( const PolyPolygon& rPolyPolygon, sal_Int32 nClippingMode )
--{
--    if ( !rPolyPolygon.Count() )
--        aPolyPoly = rPolyPolygon;
--    else if ( nDepth < WIN_MTF_MAX_CLIP_DEPTH )
--    {
--        nDepth++;
--
--        PolyPolygon aNewClipPath;
--
--        // #115345# Watch out for empty aPolyPoly here - conceptually,
--        // an empty clip path is a rectangle of infinite size, but it
--        // is represented by an empty aPolyPoly. When intersecting
--        // rPolyPolygon with this _empty_ aPolyPoly, set algebra
--        // guarantees wrong results.
--        switch ( nClippingMode )
--        {
--            case RGN_OR :
--                // #115345# clip stays empty, when ORing an arbitrary
--                // rPolyPolygon. Thus, we can save us the unnecessary
--                // clipper call.
--                if( aPolyPoly.Count() )
--                    aPolyPoly.GetUnion( rPolyPolygon, aNewClipPath );
-+        case RGN_OR :
-+            maClip.unionPolyPolygon(rB2DPoly);
-             break;
--            case RGN_XOR :
--                // TODO:
--                // #115345# Cannot handle this case, for the time being
--                aPolyPoly.GetXOR( rPolyPolygon, aNewClipPath );
-+        case RGN_XOR :
-+            maClip.xorPolyPolygon(rB2DPoly);
-             break;
--            case RGN_DIFF :
--                // TODO:
--                // #115345# Cannot handle this case, for the time being
--                aPolyPoly.GetDifference( rPolyPolygon, aNewClipPath );
-+        case RGN_DIFF :
-+            maClip.subtractPolyPolygon(rB2DPoly);
-             break;
--            case RGN_AND :
--                // #115345# Clip becomes rPolyPolygon, when ANDing
--                // with an arbitrary rPolyPolygon
--                if( aPolyPoly.Count() )
--                    aPolyPoly.GetIntersection( rPolyPolygon, aNewClipPath );
--                else
--                    aNewClipPath = rPolyPolygon;
-+        case RGN_AND :
-+            maClip.intersectPolyPolygon(rB2DPoly);
-             break;
--            case RGN_COPY :
--                aNewClipPath = rPolyPolygon;
-+        case RGN_COPY :
-+            maClip = basegfx::tools::B2DClipState(rB2DPoly);
-             break;
--        }
--        aPolyPoly = aNewClipPath;
-     }
--    ImpUpdateType();
- }
- 
--void WinMtfClipPath::MoveClipRegion( const Size& rSize )
-+void WinMtfClipPath::moveClipRegion( const Size& rSize )
-+{
-+    // what a weird concept. emulate, don't want this in B2DClipState
-+    // API
-+    basegfx::B2DPolyPolygon aCurrClip=maClip.getClipPoly();
-+    basegfx::B2DHomMatrix aTranslate;
-+    aTranslate.translate(rSize.Width(), rSize.Height());
-+
-+    aCurrClip.transform(aTranslate);
-+    maClip = basegfx::tools::B2DClipState( aCurrClip );
-+}
-+
-+basegfx::B2DPolyPolygon WinMtfClipPath::getClipPath() const
- {
--    aPolyPoly.Move( rSize.Width(), rSize.Height() );
--    bNeedsUpdate = sal_True;
-+    return maClip.getClipPoly();
- }
- 
- // ------------------------------------------------------------------------
-@@ -905,31 +861,35 @@ void WinMtfOutput::DeleteObject( sal_Int32 nIndex )
- 
- void WinMtfOutput::IntersectClipRect( const Rectangle& rRect )
- {
--    aClipPath.IntersectClipRect( ImplMap( rRect ) );
-+    mbClipNeedsUpdate=true;
-+    aClipPath.intersectClipRect( ImplMap( rRect ) );
- }
- 
- //-----------------------------------------------------------------------------------
- 
- void WinMtfOutput::ExcludeClipRect( const Rectangle& rRect )
- {
--    aClipPath.ExcludeClipRect( ImplMap( rRect ) );
-+    mbClipNeedsUpdate=true;
-+    aClipPath.excludeClipRect( ImplMap( rRect ) );
- }
- 
- //-----------------------------------------------------------------------------------
- 
- void WinMtfOutput::MoveClipRegion( const Size& rSize )
- {
--    aClipPath.MoveClipRegion( ImplMap( rSize ) );
-+    mbClipNeedsUpdate=true;
-+    aClipPath.moveClipRegion( ImplMap( rSize ) );
- }
- 
- void WinMtfOutput::SetClipPath( const PolyPolygon& rPolyPolygon, sal_Int32 nClippingMode, sal_Bool bIsMapped )
- {
-+    mbClipNeedsUpdate=true;
-     if ( bIsMapped )
--        aClipPath.SetClipPath( rPolyPolygon, nClippingMode );
-+        aClipPath.setClipPath( rPolyPolygon, nClippingMode );
-     else
-     {
-         PolyPolygon aPP( rPolyPolygon );
--        aClipPath.SetClipPath( ImplMap( aPP ), nClippingMode );
-+        aClipPath.setClipPath( ImplMap( aPP ), nClippingMode );
-     }
- }
- 
-@@ -951,6 +911,8 @@ WinMtfOutput::WinMtfOutput( GDIMetaFile& rGDIMetaFile ) :
-     maActPos			( Point() ),
-     mbNopMode			( sal_False ),
-     mbFillStyleSelected	( sal_False ),
-+    mbClipNeedsUpdate   ( true ),
-+    mbComplexClip       ( false ),
-     mnGfxMode			( GM_COMPATIBLE ),
-     mnMapMode           ( MM_TEXT ),
-     mnUnitsPerInch ( 96 ),
-@@ -1003,31 +965,25 @@ WinMtfOutput::~WinMtfOutput()
- 
- void WinMtfOutput::UpdateClipRegion()
- {
--    if ( aClipPath.bNeedsUpdate )
-+    if ( mbClipNeedsUpdate )
-     {
--        aClipPath.bNeedsUpdate = sal_False;
-+        mbClipNeedsUpdate = false;
-+        mbComplexClip = false;
- 
-         mpGDIMetaFile->AddAction( new MetaPopAction() );                    // taking the orignal clipregion
-         mpGDIMetaFile->AddAction( new MetaPushAction( PUSH_CLIPREGION ) );  // 
- 
--        switch ( aClipPath.GetType() )
-+        // skip for 'no clipping at all' case
-+        if( !aClipPath.isEmpty() )
-         {
--            case RECTANGLE :
--            case COMPLEX :
--            {
--//				we will not generate a RegionClipRegion Action, because this action
--//				cannot be saved to the wmf format - saving to wmf always happens
--//				if the placeholder graphic for ole objects is generated. (SJ)
--
--//				Region aClipRegion( aClipPath.GetClipPath() );
--//				mpGDIMetaFile->AddAction( new MetaISectRegionClipRegionAction( aClipRegion ) );
--
--                Rectangle aClipRect( aClipPath.GetClipPath().GetBoundRect() );
--                mpGDIMetaFile->AddAction( new MetaISectRectClipRegionAction( aClipRect ) );
--            }
--            break;
--            case EMPTY:
--            break;  // -Wall not handled.
-+            const basegfx::B2DPolyPolygon& rClipPoly( aClipPath.getClipPath() );
-+            mpGDIMetaFile->AddAction(
-+                new MetaISectRectClipRegionAction(
-+                    vcl::unotools::rectangleFromB2DRectangle(
-+                        rClipPoly.getB2DRange())));
-+
-+            mbComplexClip = rClipPoly.count() > 1
-+                || !basegfx::tools::isRectangle(rClipPoly);
-         }
-     }
- }
-@@ -1206,12 +1162,12 @@ void WinMtfOutput::DrawRect( const Rectangle& rRect, BOOL bEdge )
-     UpdateClipRegion();
-     UpdateFillStyle();
- 
--    if ( aClipPath.GetType() == COMPLEX )
-+    if ( mbComplexClip )
-     {
-         Polygon aPoly( ImplMap( rRect ) );
-         PolyPolygon aPolyPolyRect( aPoly );
-         PolyPolygon aDest;
--        aClipPath.GetClipPath().GetIntersection( aPolyPolyRect, aDest );
-+        PolyPolygon(aClipPath.getClipPath()).GetIntersection( aPolyPolyRect, aDest );
-         ImplDrawClippedPolyPolygon( aDest );
-     }
-     else
-@@ -1366,11 +1322,11 @@ void WinMtfOutput::DrawPolygon( Polygon& rPolygon, sal_Bool bRecordPath )
-     {
-         UpdateFillStyle();
- 
--        if ( aClipPath.GetType() == COMPLEX )
-+        if ( mbComplexClip )
-         {
-             PolyPolygon aPolyPoly( rPolygon );
-             PolyPolygon aDest;
--            aClipPath.GetClipPath().GetIntersection( aPolyPoly, aDest );
-+            PolyPolygon(aClipPath.getClipPath()).GetIntersection( aPolyPoly, aDest );
-             ImplDrawClippedPolyPolygon( aDest );
-         }
-         else
-@@ -1442,10 +1398,10 @@ void WinMtfOutput::DrawPolyPolygon( PolyPolygon& rPolyPolygon, sal_Bool bRecordP
-     {
-         UpdateFillStyle();
- 
--        if ( aClipPath.GetType() == COMPLEX )
-+        if ( mbComplexClip )
-         {
-             PolyPolygon aDest;
--            aClipPath.GetClipPath().GetIntersection( rPolyPolygon, aDest );	
-+            PolyPolygon(aClipPath.getClipPath()).GetIntersection( rPolyPolygon, aDest );
-             ImplDrawClippedPolyPolygon( aDest );
-         }
-         else
-@@ -1680,7 +1636,7 @@ void WinMtfOutput::DrawText( Point& rPosition, String& rText, sal_Int32* pDXArry
- void WinMtfOutput::ImplDrawBitmap( const Point& rPos, const Size& rSize, const BitmapEx rBitmap )
- {
-     BitmapEx aBmpEx( rBitmap );
--    if ( aClipPath.GetType() == COMPLEX )
-+    if ( mbComplexClip )
-     {
-         VirtualDevice aVDev;
-         MapMode aMapMode( MAP_100TH_MM );
-@@ -1695,7 +1651,7 @@ void WinMtfOutput::ImplDrawBitmap( const Point& rPos, const Size& rSize, const B
-         aVDev.SetMapMode( aMapMode );
-         aVDev.SetOutputSizePixel( aSizePixel );
-         aVDev.SetFillColor( Color( COL_BLACK ) );
--        const PolyPolygon aClip( aClipPath.GetClipPath() );
-+        const PolyPolygon aClip( aClipPath.getClipPath() );
-         aVDev.DrawPolyPolygon( aClip );
-         const Point aEmptyPoint;
- 
-@@ -2252,7 +2208,7 @@ void WinMtfOutput::Pop()
-         if ( ! ( aClipPath == pSave->aClipPath ) )
-         {
-             aClipPath = pSave->aClipPath;
--            aClipPath.bNeedsUpdate = sal_True;
-+            mbClipNeedsUpdate = true;
-         }
-         if ( meLatestRasterOp != meRasterOp )
-             mpGDIMetaFile->AddAction( new MetaRasterOpAction( meRasterOp ) );
-diff --git svtools/source/filter.vcl/wmf/winmtf.hxx svtools/source/filter.vcl/wmf/winmtf.hxx
-index c427281..d9c95bf 100644
---- svtools/source/filter.vcl/wmf/winmtf.hxx
-+++ svtools/source/filter.vcl/wmf/winmtf.hxx
-@@ -45,6 +45,7 @@
- #include <vcl/graph.hxx>
- #include <vcl/virdev.hxx>
- #include <tools/poly.hxx>
-+#include <basegfx/tools/b2dclipstate.hxx>
- #include <vcl/font.hxx>
- #include <vcl/bmpacc.hxx>
- #include <vcl/lineinfo.hxx>
-@@ -309,35 +310,26 @@ struct WMF_APMFILEHEADER;
- void WinMtfAssertHandler( const sal_Char*, sal_uInt32 nFlags = WIN_MTF_ASSERT_MIFE );
- #endif 
- 
--enum WinMtfClipPathType{ EMPTY, RECTANGLE, COMPLEX };
--
- class WinMtfClipPath
- {
--        PolyPolygon			aPolyPoly;
--        WinMtfClipPathType	eType;
--        sal_Int32			nDepth;
--
--        void		ImpUpdateType();
--
--    public :
-+    basegfx::tools::B2DClipState maClip;
- 
--        sal_Bool	bNeedsUpdate;
-+public :
-+    WinMtfClipPath(): maClip() {};
- 
--                    WinMtfClipPath(): eType(EMPTY), nDepth( 0 ), bNeedsUpdate( sal_False ){};
-+    void		setClipPath( const PolyPolygon& rPolyPolygon, sal_Int32 nClippingMode );
-+    void		intersectClipRect( const Rectangle& rRect );
-+    void		excludeClipRect( const Rectangle& rRect );
-+    void		moveClipRegion( const Size& rSize );
- 
--        void		SetClipPath( const PolyPolygon& rPolyPolygon, sal_Int32 nClippingMode );
--        void		IntersectClipRect( const Rectangle& rRect );
--        void		ExcludeClipRect( const Rectangle& rRect );
--        void		MoveClipRegion( const Size& rSize );
-+    bool isEmpty() const { return maClip.isCleared(); }
- 
--        WinMtfClipPathType GetType() const { return eType; };
--        const PolyPolygon& GetClipPath() const { return aPolyPoly; };
-+    basegfx::B2DPolyPolygon getClipPath() const;
- 
--        sal_Bool operator==( const WinMtfClipPath& rPath )
--        {
--            return  ( rPath.eType == eType ) &&
--                    ( rPath.aPolyPoly == aPolyPoly );
--        };
-+    bool operator==( const WinMtfClipPath& rPath ) const
-+    {
-+        return maClip == rPath.maClip;
-+    };
- };
- 
- class WinMtfPathObj : public PolyPolygon
-@@ -583,6 +575,8 @@ class WinMtfOutput
-         sal_uInt32          mnRop;
-         sal_Bool            mbNopMode;
-         sal_Bool			mbFillStyleSelected;
-+        sal_Bool            mbClipNeedsUpdate;
-+        sal_Bool            mbComplexClip;
- 
-         std::vector< SaveStructPtr > vSaveStack;
- 
commit 95c85d4c987e8b81490ae654e89178e357997acb
Author: Thorsten Behrens <tbehrens at novell.com>
Date:   Tue Oct 26 23:14:25 2010 +0200

    Added rationale why patch needs more love

diff --git a/patches/dev300/apply b/patches/dev300/apply
index 196715a..3189e0b 100755
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -2136,6 +2136,7 @@ system-lpsolve-rpath.diff, rengelha
 dlopen-global-symbols.diff, thorsten
 
 # fix framework to no longer pull presenter screen for all apps
+# needs some more love, see comments in issue
 framework-extra-job-config.diff, i#107568, thorsten
 
 [ BuildBits ]
commit f5dde8bae1059c534dbbc8633f044f0fa5cfc30c
Author: Thorsten Behrens <tbehrens at novell.com>
Date:   Tue Oct 26 23:07:52 2010 +0200

    Moved ppt-customshape-shading-fix and svx-fontwork-crash-fix to git

diff --git a/patches/dev300/apply b/patches/dev300/apply
index 9182291..196715a 100755
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -2039,8 +2039,6 @@ ubuntu-arm-thumb.diff, doko
 # Fix for crash on Windows by Rail Aliev. Root cause unknown.
 svx-fix-fit-to-frame-crash.diff, n#508621, rodo
 
-svx-fontwork-crash-fix.diff, n#526342, thorsten
-
 # expand path placeholders early in template dialog
 normalize-template-paths-fix.diff, n#512146, thorsten
 
@@ -2133,9 +2131,6 @@ system-lpsolve-rpath.diff, rengelha
 system-lpsolve-rpath.diff, rengelha
 
 [ Fixes ]
-# add missing patch to upstreamed ppt gradient fix
-ppt-customshape-shading-fix.diff, i#102797, thorsten
-
 # make dlopen-ed libs to use the global namespace for symbol
 # resolution
 dlopen-global-symbols.diff, thorsten
diff --git a/patches/dev300/ppt-customshape-shading-fix.diff b/patches/dev300/ppt-customshape-shading-fix.diff
deleted file mode 100644
index 74e6915..0000000
--- a/patches/dev300/ppt-customshape-shading-fix.diff
+++ /dev/null
@@ -1,45 +0,0 @@
-diff --git svx/source/customshapes/EnhancedCustomShape2d.cxx svx/source/customshapes/EnhancedCustomShape2d.cxx
-index 12123ec..3ad578a 100644
---- svx/source/customshapes/EnhancedCustomShape2d.cxx
-+++ svx/source/customshapes/EnhancedCustomShape2d.cxx
-@@ -1740,6 +1740,22 @@ void EnhancedCustomShape2d::CreateSubPath( sal_uInt16& rSrcPt, sal_uInt16& rSegm
- 
-     if(aNewB2DPolyPolygon.count())
-     {
-+        if( !bLineGeometryNeededOnly )
-+        {
-+            // hack aNewB2DPolyPolygon to fill logic rect - this is
-+            // needed to produce gradient fills that look like mso
-+            aNewB2DPolygon.clear();
-+            aNewB2DPolygon.append(basegfx::B2DPoint(0,0));
-+            aNewB2DPolygon.setClosed(true);
-+            aNewB2DPolyPolygon.append(aNewB2DPolygon);
-+
-+            aNewB2DPolygon.clear();
-+            aNewB2DPolygon.append(basegfx::B2DPoint(aLogicRect.GetWidth(),
-+                                                    aLogicRect.GetHeight()));
-+            aNewB2DPolygon.setClosed(true);
-+            aNewB2DPolyPolygon.append(aNewB2DPolygon);
-+        }
-+
-         // #i37011#
-         bool bForceCreateTwoObjects(false);
- 
-diff --git a/drawinglayer/source/primitive2d/polygonprimitive2d.cxx b/drawinglayer/source/primitive2d/polygonprimitive2d.cxx
-index ad9a235..b501515 100644
---- drawinglayer/source/primitive2d/polygonprimitive2d.cxx
-+++ drawinglayer/source/primitive2d/polygonprimitive2d.cxx
-@@ -509,10 +509,11 @@ namespace drawinglayer
-         {
-             // copy local polygon, it may be changed
-             basegfx::B2DPolygon aLocalPolygon(getB2DPolygon());
-+            aLocalPolygon.removeDoublePoints();
-             basegfx::B2DPolyPolygon aArrowA;
-             basegfx::B2DPolyPolygon aArrowB;
- 
--            if(!aLocalPolygon.isClosed())
-+            if(!aLocalPolygon.isClosed() && aLocalPolygon.count() > 1)
-             {
-                 // apply arrows
-                 const double fPolyLength(basegfx::tools::getLength(aLocalPolygon));
-
diff --git a/patches/dev300/svx-fontwork-crash-fix.diff b/patches/dev300/svx-fontwork-crash-fix.diff
deleted file mode 100644
index 333e5b7..0000000
--- a/patches/dev300/svx-fontwork-crash-fix.diff
+++ /dev/null
@@ -1,20 +0,0 @@
----
- .../customshapes/EnhancedCustomShapeFontWork.cxx   |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git svx/source/customshapes/EnhancedCustomShapeFontWork.cxx svx/source/customshapes/EnhancedCustomShapeFontWork.cxx
-index 33d9bef..bd24198 100644
---- svx/source/customshapes/EnhancedCustomShapeFontWork.cxx
-+++ svx/source/customshapes/EnhancedCustomShapeFontWork.cxx
-@@ -636,7 +636,7 @@ void InsertMissingOutlinePoints( const Polygon& /*rOutlinePoly*/, const std::vec
- void GetPoint( const Polygon& rPoly, const std::vector< double >& rDistances, const double& fX, double& fx1, double& fy1 )
- {
-     fy1 = fx1 = 0.0;
--    if ( rPoly.GetSize() )
-+    if ( rPoly.GetSize() > 1 )
-     {
-         std::vector< double >::const_iterator aIter = std::lower_bound( rDistances.begin(), rDistances.end(), fX );
-         sal_uInt16 nIdx = sal::static_int_cast<sal_uInt16>( std::distance( rDistances.begin(), aIter ) );
--- 
-1.7.0.1
-
commit 2c75101409147da1fede244ef9199c39638065ef
Author: Thorsten Behrens <tbehrens at novell.com>
Date:   Tue Oct 26 22:56:01 2010 +0200

    Moved sd-ruler-fix.diff to git

diff --git a/patches/dev300/apply b/patches/dev300/apply
index 7caacfe..9182291 100755
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -1970,9 +1970,6 @@ optional-outplace-ole.diff, i#98970, thorsten
 # global application-wide shortcuts also in open dialogs
 vcl-permit-global-shortcuts.diff, i#105676, thorsten
 
-# make Impress ruler behave as before 3.0
-sd-ruler-fix.diff, i#101269, thorsten
-
 # unresolved Base64 Java classes
 base64.diff, i#100620, hmth
 
diff --git a/patches/dev300/sd-ruler-fix.diff b/patches/dev300/sd-ruler-fix.diff
deleted file mode 100644
index 28a31a1..0000000
--- a/patches/dev300/sd-ruler-fix.diff
+++ /dev/null
@@ -1,135 +0,0 @@
----
- editeng/source/outliner/outlvw.cxx |    4 +-
- sd/source/ui/view/drviews3.cxx     |   82 ++++++++++++++++++++++++++++++++++-
- 2 files changed, 82 insertions(+), 4 deletions(-)
-
-diff --git editeng/source/outliner/outlvw.cxx editeng/source/outliner/outlvw.cxx
-index bf98d8b..8792b86 100755
---- editeng/source/outliner/outlvw.cxx
-+++ editeng/source/outliner/outlvw.cxx
-@@ -553,7 +553,9 @@ void OutlinerView::SetAttribs( const SfxItemSet& rAttrs )
-     for( USHORT nPara= aSel.nStartPara; nPara <= aSel.nEndPara; nPara++ )
-     {
-         pOwner->ImplCheckNumBulletItem( nPara );
--        pOwner->ImplCalcBulletText( nPara, FALSE, FALSE );
-+        // update following paras as well, numbering depends on
-+        // previous paras
-+        pOwner->ImplCalcBulletText( nPara, TRUE, FALSE );
- 
-         if( !pOwner->IsInUndo() && pOwner->IsUndoEnabled() )
-             pOwner->InsertUndo( new OutlinerUndoCheckPara( pOwner, nPara ) );
-diff --git sd/source/ui/view/drviews3.cxx sd/source/ui/view/drviews3.cxx
-index 9f79617..ede4d76 100755
---- sd/source/ui/view/drviews3.cxx
-+++ sd/source/ui/view/drviews3.cxx
-@@ -37,6 +37,7 @@
- #include <editeng/protitem.hxx>
- #include <editeng/frmdiritem.hxx>
- #include <svx/ruler.hxx>
-+#include <editeng/numitem.hxx>
- #include <svx/rulritem.hxx>
- #include <svx/zoomitem.hxx>
- #include <svx/svxids.hrc>
-@@ -689,14 +690,75 @@ void  DrawViewShell::ExecRuler(SfxRequest& rReq)
-                 const SvxLRSpaceItem& rItem = (const SvxLRSpaceItem&)
-                             pArgs->Get( nId );
- 
--                SfxItemSet aEditAttr( GetPool(), EE_PARA_LRSPACE, EE_PARA_LRSPACE );
-+                static const USHORT aWhichTable[]=
-+                {
-+                    EE_PARA_OUTLLEVEL, EE_PARA_OUTLLEVEL,
-+                    EE_PARA_LRSPACE, EE_PARA_LRSPACE,
-+                    EE_PARA_NUMBULLET, EE_PARA_NUMBULLET,
-+                    0, 0
-+                };
-+
-+                SfxItemSet aEditAttr( GetDoc()->GetPool(),
-+                                      aWhichTable );
-+                mpDrawView->GetAttributes( aEditAttr );
- 
-                 nId = EE_PARA_LRSPACE;
-                 SvxLRSpaceItem aLRSpaceItem( rItem.GetLeft(),
-                         rItem.GetRight(), rItem.GetTxtLeft(),
-                         rItem.GetTxtFirstLineOfst(), nId );
--                aEditAttr.Put( aLRSpaceItem );
--                mpDrawView->SetAttributes( aEditAttr );
-+
-+                const INT16 nOutlineLevel = ((const SfxInt16Item&)aEditAttr.Get( EE_PARA_OUTLLEVEL )).GetValue();
-+                const SvxLRSpaceItem& rOrigLRSpaceItem = (const SvxLRSpaceItem&) aEditAttr.Get( EE_PARA_LRSPACE );
-+                const SvxNumBulletItem& rNumBulletItem = (const SvxNumBulletItem&) aEditAttr.Get( EE_PARA_NUMBULLET );
-+                if( nOutlineLevel != -1 &&
-+                    rNumBulletItem.GetNumRule() &&
-+                    rNumBulletItem.GetNumRule()->GetLevelCount() > nOutlineLevel )
-+                {
-+                    const SvxNumberFormat& rFormat = rNumBulletItem.GetNumRule()->GetLevel(nOutlineLevel);
-+                    SvxNumberFormat aFormat(rFormat);
-+
-+                    // left margin always controls LRSpace item
-+                    aLRSpaceItem.SetTxtLeft(rItem.GetTxtLeft() - aFormat.GetAbsLSpace());
-+
-+                    // negative first line indent goes to the number
-+                    // format, positive to the lrSpace item
-+                    if( rItem.GetTxtFirstLineOfst() < 0 )
-+                    {
-+                        aFormat.SetFirstLineOffset(
-+                            rItem.GetTxtFirstLineOfst()
-+                            - rOrigLRSpaceItem.GetTxtFirstLineOfst()
-+                            + aFormat.GetCharTextDistance());
-+                        aLRSpaceItem.SetTxtFirstLineOfst(0);
-+                    }
-+                    else
-+                    {
-+                        aFormat.SetFirstLineOffset(0);
-+                        aLRSpaceItem.SetTxtFirstLineOfst(
-+                            rItem.GetTxtFirstLineOfst()
-+                            - aFormat.GetFirstLineOffset()
-+                            + aFormat.GetCharTextDistance());
-+                    }
-+
-+                    if( rFormat != aFormat )
-+                    {
-+                        // put all items
-+                        SvxNumBulletItem aNumBulletItem(rNumBulletItem);
-+                        aNumBulletItem.GetNumRule()->SetLevel(nOutlineLevel,aFormat);
-+                        aEditAttr.Put( aNumBulletItem );
-+                        aEditAttr.Put( aLRSpaceItem );
-+                        mpDrawView->SetAttributes( aEditAttr );
-+
-+                        // #92557# Invalidate is missing here
-+                        Invalidate(SID_ATTR_PARA_LRSPACE);
-+                        break;
-+                    }
-+                }
-+
-+                // only put lrSpace item
-+                SfxItemSet aEditAttrReduced( GetDoc()->GetPool(),
-+                                             EE_PARA_LRSPACE, EE_PARA_LRSPACE );
-+                aEditAttrReduced.Put( aLRSpaceItem );
-+                mpDrawView->SetAttributes( aEditAttrReduced );
- 
-                 // #92557# Invalidate is missing here
-                 Invalidate(SID_ATTR_PARA_LRSPACE);
-@@ -782,6 +844,20 @@ void  DrawViewShell::GetRulerState(SfxItemSet& rSet)
-                     SvxLRSpaceItem aLRSpaceItem( rLRSpaceItem.GetLeft(),
-                             rLRSpaceItem.GetRight(), rLRSpaceItem.GetTxtLeft(),
-                             rLRSpaceItem.GetTxtFirstLineOfst(), nId );
-+
-+                    const INT16 nOutlineLevel = ((const SfxInt16Item&)aEditAttr.Get( EE_PARA_OUTLLEVEL )).GetValue();
-+                    const SvxNumBulletItem& rNumBulletItem = (const SvxNumBulletItem&) aEditAttr.Get( EE_PARA_NUMBULLET );
-+                    if( nOutlineLevel != -1 &&
-+                        rNumBulletItem.GetNumRule() &&
-+                        rNumBulletItem.GetNumRule()->GetLevelCount() > nOutlineLevel )
-+                    {
-+                        const SvxNumberFormat& rFormat = rNumBulletItem.GetNumRule()->GetLevel(nOutlineLevel);
-+                        aLRSpaceItem.SetTxtLeft(rFormat.GetAbsLSpace() + rLRSpaceItem.GetTxtLeft());
-+                        aLRSpaceItem.SetTxtFirstLineOfst(
-+                            rLRSpaceItem.GetTxtFirstLineOfst() + rFormat.GetFirstLineOffset()
-+                            - rFormat.GetCharTextDistance());
-+                    }
-+
-                     rSet.Put( aLRSpaceItem );
- 
-                     Point aPos( aPagePos + maMarkRect.TopLeft() );
--- 
-1.7.0.1
-
commit 8666fdada4b57d9a77de89231b02b39d452d0f5e
Author: Thorsten Behrens <tbehrens at novell.com>
Date:   Tue Oct 26 22:39:04 2010 +0200

    Move sd-customanimation-defbutton to git

diff --git a/patches/dev300/apply b/patches/dev300/apply
index 331c06f..7caacfe 100755
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -1969,9 +1969,6 @@ optional-outplace-ole.diff, i#98970, thorsten
 # let ctrl-<keycode> stuff pass dlg keyboard handling, to permit
 # global application-wide shortcuts also in open dialogs
 vcl-permit-global-shortcuts.diff, i#105676, thorsten
-# make ok and cancel btns work on return and esc, resp. in Impress'
-# custom animation create dialog
-sd-customanimation-defbutton.diff, i#105675, thorsten
 
 # make Impress ruler behave as before 3.0
 sd-ruler-fix.diff, i#101269, thorsten
diff --git a/patches/dev300/sd-customanimation-defbutton.diff b/patches/dev300/sd-customanimation-defbutton.diff
deleted file mode 100644
index 255b13c..0000000
--- a/patches/dev300/sd-customanimation-defbutton.diff
+++ /dev/null
@@ -1,21 +0,0 @@
----
- .../ui/animations/CustomAnimationCreateDialog.cxx  |    2 ++
- 1 files changed, 2 insertions(+), 0 deletions(-)
-
-diff --git sd/source/ui/animations/CustomAnimationCreateDialog.cxx sd/source/ui/animations/CustomAnimationCreateDialog.cxx
-index 6d0d1d4..8774ca9 100755
---- sd/source/ui/animations/CustomAnimationCreateDialog.cxx
-+++ sd/source/ui/animations/CustomAnimationCreateDialog.cxx
-@@ -525,7 +525,9 @@ CustomAnimationCreateDialog::CustomAnimationCreateDialog( Window* pParent, Custo
- {
-     mpTabControl = new TabControl( this, SdResId( 1 ) );
-     mpOKButton = new OKButton(this, SdResId( 1 ) ) ;
-+    mpOKButton->SetStyle(WB_DEFBUTTON);
-     mpCancelButton = new CancelButton(this, SdResId( 1 ) );
-+    mpCancelButton->SetStyle(WB_DEFBUTTON);
-     mpHelpButton = new HelpButton(this, SdResId( 1 ) );
- 
-     FreeResource();
--- 
-1.7.0.1
-
commit 25d5c812359c68a337cfca099f1efc1fb41d7a51
Author: Thorsten Behrens <tbehrens at novell.com>
Date:   Tue Oct 26 22:35:23 2010 +0200

    Moved solenv-installer-unopkg-call.diff to git

diff --git a/patches/dev300/apply b/patches/dev300/apply
index 80e433a..331c06f 100755
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -1938,9 +1938,6 @@ testing-more-optimizations-ark.diff
 # why? If this really is not needed, let's remove totally then. --tml
 #sw-import-TOC.diff ,n#404254, Amelia Wang
 
-# call unopkg such that java does not require interactive session
-solenv-installer-unopkg-call.diff, thorsten
-
 # (disabled) debug code extracting SdrOLE streams to some tmp location
 svx-debug-sdrolestreams.diff, thorsten
 sal-disable-backtrace.diff, thorsten
diff --git a/patches/dev300/solenv-installer-unopkg-call.diff b/patches/dev300/solenv-installer-unopkg-call.diff
deleted file mode 100644
index f698685..0000000
--- a/patches/dev300/solenv-installer-unopkg-call.diff
+++ /dev/null
@@ -1,21 +0,0 @@
----
- solenv/bin/modules/installer/simplepackage.pm |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git solenv/bin/modules/installer/simplepackage.pm solenv/bin/modules/installer/simplepackage.pm
-index 1251966..6a56f0b 100644
---- solenv/bin/modules/installer/simplepackage.pm
-+++ solenv/bin/modules/installer/simplepackage.pm
-@@ -131,7 +131,7 @@ sub register_extensions
- 
-         $preregdir =~ s/\/\s*$//g;
- 
--        my $systemcall = $unopkgfile . " sync --verbose -env:BUNDLED_EXTENSIONS_USER=\"file://" . $slash . $preregdir . "\"" . " -env:UserInstallation=file://" . $slash . $localtemppath . " 2\>\&1 |";
-+        my $systemcall = "JFW_PLUGIN_DO_NOT_CHECK_ACCESSIBILITY=1 " . $unopkgfile . " sync --verbose -env:BUNDLED_EXTENSIONS_USER=\"file://" . $slash . $preregdir . "\"" . " -env:UserInstallation=file://" . $slash . $localtemppath . " 2\>\&1 |";
- 
-         print "... $systemcall ...\n";
- 
-
--- 
-1.7.0.1
-
commit f5b8a9f949e979c30b0ca23d942eab73159dd123
Author: Thorsten Behrens <tbehrens at novell.com>
Date:   Tue Oct 26 22:27:56 2010 +0200

    Moved svtools-update-ole.diff to git

diff --git a/patches/dev300/apply b/patches/dev300/apply
index aa5f2d4..80e433a 100755
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -1923,9 +1923,6 @@ SectionOwner => brosenk
 # See what breaks if we build with more optimizations
 testing-more-optimizations-ark.diff
 
-[ Fixes ]
-svtools-update-ole.diff, n#411855, thorsten
-
 [ NovellLikeOnlyWin32 ]
 
 # FIXME: 2009-09-11: Bypass this for now. Interferes with
diff --git a/patches/dev300/svtools-update-ole.diff b/patches/dev300/svtools-update-ole.diff
deleted file mode 100644
index beee92e..0000000
--- a/patches/dev300/svtools-update-ole.diff
+++ /dev/null
@@ -1,22 +0,0 @@
----
- svtools/source/misc/embedhlp.cxx |    4 +++-
- 1 files changed, 3 insertions(+), 1 deletions(-)
-
-diff --git svtools/source/misc/embedhlp.cxx svtools/source/misc/embedhlp.cxx
-index d94c798..762e8af 100644
---- svtools/source/misc/embedhlp.cxx
-+++ svtools/source/misc/embedhlp.cxx
-@@ -181,7 +181,9 @@ void SAL_CALL EmbedEventListener_Impl::modified( const lang::EventObject& ) thro
-             else
-                 pObject->UpdateReplacement();
-         }
--        else if ( nState == embed::EmbedStates::UI_ACTIVE || nState == embed::EmbedStates::INPLACE_ACTIVE )
-+        else if ( nState == embed::EmbedStates::ACTIVE ||
-+                  nState == embed::EmbedStates::UI_ACTIVE ||
-+                  nState == embed::EmbedStates::INPLACE_ACTIVE )
-         {
-             // in case the object is inplace or UI active the replacement image should be updated on demand
-             pObject->UpdateReplacementOnDemand();
--- 
-1.7.0.1
-
commit 6f8847b80ec7fee43befacc947c47d17016ef723
Author: Thorsten Behrens <tbehrens at novell.com>
Date:   Tue Oct 26 22:21:10 2010 +0200

    Support for MSVC2005 ended, so goes this patch

diff --git a/patches/dev300/apply b/patches/dev300/apply
index 4f25fa1..aa5f2d4 100755
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -1911,11 +1911,6 @@ sw-team-pane.diff
 
 sw-do-not-capture-surround-through-objs-patch.diff, n#367341, i#18732, flr
 
-
-[ Fixes ]
-unoxml-boost-workaround.diff, thorsten
-
-
 [ LocalizeFixes ]
 # pack only selected languages in the l10n module
 # FIXME dev300-m77 l10n-build-only-selected-langs.diff, i#106185, pmladek
diff --git a/patches/dev300/unoxml-boost-workaround.diff b/patches/dev300/unoxml-boost-workaround.diff
deleted file mode 100644
index b832e9f..0000000
--- a/patches/dev300/unoxml-boost-workaround.diff
+++ /dev/null
@@ -1,29 +0,0 @@
----
- unoxml/source/rdf/librdf_repository.cxx |   11 +++++++----
- 1 files changed, 7 insertions(+), 4 deletions(-)
-
-diff --git unoxml/source/rdf/librdf_repository.cxx unoxml/source/rdf/librdf_repository.cxx
-index 3d2acf0..7b2ead0 100644
---- unoxml/source/rdf/librdf_repository.cxx
-+++ unoxml/source/rdf/librdf_repository.cxx
-@@ -1151,10 +1151,13 @@ throw (uno::RuntimeException, rdf::RepositoryException)
- {
-     ::osl::MutexGuard g(m_aMutex);
-     ::comphelper::SequenceAsVector< uno::Reference<rdf::XURI> > ret;
--    std::transform(m_NamedGraphs.begin(), m_NamedGraphs.end(),
--        std::back_inserter(ret),
--        boost::bind(&rdf::XNamedGraph::getName,
--            boost::bind(&NamedGraphMap_t::value_type::second, _1)));
-+    NamedGraphMap_t::const_iterator aCurr(m_NamedGraphs.begin());
-+    NamedGraphMap_t::const_iterator const aEnd(m_NamedGraphs.end());
-+    while( aCurr != aEnd )
-+    {
-+        ret.push_back(aCurr->second->getName());
-+        ++aCurr;
-+    }
-     return ret.getAsConstList();
- }
- 
--- 
-1.7.0.1
-
commit b360001bac1b1dab0ac5d9687e07abe8f20c756a
Author: Thorsten Behrens <tbehrens at novell.com>
Date:   Tue Oct 26 22:20:32 2010 +0200

    Moved cppcanvas-fix-roundcorners.diff to git

diff --git a/patches/dev300/apply b/patches/dev300/apply
index 88996b9..4f25fa1 100755
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -1913,7 +1913,6 @@ sw-do-not-capture-surround-through-objs-patch.diff, n#367341, i#18732, flr
 
 
 [ Fixes ]
-cppcanvas-fix-roundcorners.diff, rodo
 unoxml-boost-workaround.diff, thorsten
 
 
diff --git a/patches/dev300/cppcanvas-fix-roundcorners.diff b/patches/dev300/cppcanvas-fix-roundcorners.diff
deleted file mode 100644
index f3cdfe3..0000000
--- a/patches/dev300/cppcanvas-fix-roundcorners.diff
+++ /dev/null
@@ -1,22 +0,0 @@
----
- cppcanvas/source/mtfrenderer/implrenderer.cxx |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git cppcanvas/source/mtfrenderer/implrenderer.cxx cppcanvas/source/mtfrenderer/implrenderer.cxx
-index 3343e7f..688881b 100644
---- cppcanvas/source/mtfrenderer/implrenderer.cxx
-+++ cppcanvas/source/mtfrenderer/implrenderer.cxx
-@@ -2013,8 +2013,8 @@ namespace cppcanvas
-                                     ::vcl::unotools::b2DPointFromPoint( rRect.TopLeft() ),
-                                     ::vcl::unotools::b2DPointFromPoint( rRect.BottomRight() ) +
-                                     ::basegfx::B2DPoint(1,1) ),
--                                static_cast<MetaRoundRectAction*>(pCurrAct)->GetHorzRound(),
--                                static_cast<MetaRoundRectAction*>(pCurrAct)->GetVertRound() ));
-+                                ( (double) static_cast<MetaRoundRectAction*>(pCurrAct)->GetHorzRound() ) / rRect.GetWidth(),
-+                                ( (double) static_cast<MetaRoundRectAction*>(pCurrAct)->GetVertRound() ) / rRect.GetHeight() ) );
-                         aPoly.transform( getState( rStates ).mapModeTransform );
- 
-                         createFillAndStroke( aPoly,
--- 
-1.7.0.1
-
commit b091a427f42f1916b4f08962ce4d459d5755aa64
Author: Thorsten Behrens <tbehrens at novell.com>
Date:   Tue Oct 26 22:15:25 2010 +0200

    Annotated controversial patch

diff --git a/patches/dev300/apply b/patches/dev300/apply
index 4fe31da..88996b9 100755
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -1890,6 +1890,8 @@ svx-hacky-htmlselect-control-import.diff, n#523191, noelpwer
 
 sd-slideshow-slideshowview-transformation-fix.diff, rodo
 
+# controversial fix - closer to ppt97 behaviour than to 2k7 - need
+# version compat distinction?
 sd-custom-show-fix.diff, n#355638, i#90145, thorsten
 
 # apply this patch if you need to disable vcl grabbing your mouse -
commit 4abec2024ded765a573b3705edd280deab820949
Author: Thorsten Behrens <tbehrens at novell.com>
Date:   Tue Oct 26 22:12:50 2010 +0200

    Support for msvc2005 ceased, so goes this patch

diff --git a/patches/dev300/apply b/patches/dev300/apply
index 41f41bf..4fe31da 100755
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -1619,7 +1619,6 @@ dont-check-fqdn.diff
 # part of the code
 win32-quickstarter-exit.diff, i#73550, tml
 novell-win32-avoid-premature-shutdown.diff, n#269146, tml
-comphelper-msvc8-fix.diff, thorsten, i#89973
 # some versions of make don't like us
 cygwin-make-ver.diff, i#68283, michael
 
diff --git a/patches/dev300/comphelper-msvc8-fix.diff b/patches/dev300/comphelper-msvc8-fix.diff
deleted file mode 100644
index d65395e..0000000
--- a/patches/dev300/comphelper-msvc8-fix.diff
+++ /dev/null
@@ -1,46 +0,0 @@
---- comphelper/inc/comphelper/stlunosequence.hxx	14 May 2008 09:31:23 -0000	1.2
-+++ comphelper/inc/comphelper/stlunosequence.hxx	26 May 2008 15:54:15 -0000
-@@ -82,8 +82,15 @@ namespace comphelper { namespace stlunos
-             typedef const V& reference;
-             StlSequenceConstIterator();
-             StlSequenceConstIterator(S * uno_sequence, typename StlSequenceIterator<S,V>::difference_type by);
--            typename StlSequenceIterator<S,V>::const_reference operator*() const;
--            typename StlSequenceIterator<S,V>::const_reference operator[](const typename StlSequenceIterator<S,V>::difference_type by) const;
-+            typename StlSequenceIterator<S,V>::const_reference operator*() const
-+            {
-+                return (*(this->m_UnoSequence))[this->m_Index];
-+            }
-+
-+            typename StlSequenceIterator<S,V>::const_reference operator[](const typename StlSequenceIterator<S,V>::difference_type by) const
-+            {
-+                return (*(this->m_UnoSequence))[this->m_Index+by];
-+            }
-     };
- 
-     template<typename S, typename V>
-@@ -151,12 +158,6 @@ namespace comphelper { namespace stlunos
-     }
- 
-     template<typename S, typename V>
--    inline typename StlSequenceIterator<S,V>::const_reference StlSequenceConstIterator<S, V>::operator*() const
--    {
--        return (*(this->m_UnoSequence))[this->m_Index];
--    }
--
--    template<typename S, typename V>
-     inline StlSequenceIterator<S,V>& StlSequenceIterator<S, V>::operator++()
-     {
-         ++m_Index;
-@@ -278,12 +279,6 @@ namespace comphelper { namespace stlunos
-         return (*(this->m_UnoSequence))[this->m_Index+by];
-     }
- 
--    template<typename S, typename V>
--    inline typename StlSequenceIterator<S,V>::const_reference StlSequenceConstIterator<S, V>::operator[](const typename StlSequenceIterator<S,V>::difference_type by) const
--    {
--        return (*(this->m_UnoSequence))[this->m_Index+by];
--    }
--
-     // StlSequence
-     template<typename S, typename V>
-     StlSequence<S,V>::StlSequence(S& uno_sequence)
commit ddc2cc07db40a3b6b58d2bcdfe6e15023395b6dd
Author: Thorsten Behrens <tbehrens at novell.com>
Date:   Tue Oct 26 22:08:58 2010 +0200

    Removed two obsolete patches
    
    * patches/dev300/sd-create-table-height-fix.diff: fix for n#483951,
      i#100275, fixed differently in OOo 3.3
    * patches/dev300/svx-ppt-tablerow-height-fix.diff: fix for n#483951,
      i#100275, fixed differently in OOo 3.3

diff --git a/patches/dev300/apply b/patches/dev300/apply
index cceaefc..41f41bf 100755
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -284,10 +284,6 @@ buildfix-x86-64-visibility-workaround.diff
 # as the "upstream" now uses documentfoundation.org
 # redirect-extensions.diff
 
-[ Fixes ]
-# correctly set table row height during ppt import
-svx-ppt-tablerow-height-fix.diff, n#483951, i#100275, thorsten
-
 [ Cairo10 ]
 # CAIRO_EXTEND_PAD is not available in cairo-1.0.2
 canvas-build-cairo-1.0.diff, i#123456, pmladek
@@ -2033,7 +2029,6 @@ oox-pptx-export-fix-hidden-slides.diff, n#499131, rodo
 external-apm-header.diff, freuter
 wmf-mm-text.diff, n#417818, rodo
 wmf-mm-text-1.diff, n#417818, rodo
-sd-create-table-height-fix.diff, i#100275, thorsten
 
 [ UbuntuHardyOnly ]
 # Add patch to only show local files needed when gnome-vfs/gio is disabled
diff --git a/patches/dev300/sd-create-table-height-fix.diff b/patches/dev300/sd-create-table-height-fix.diff
deleted file mode 100644
index f88a0df..0000000
--- a/patches/dev300/sd-create-table-height-fix.diff
+++ /dev/null
@@ -1,37 +0,0 @@
-Make initial table row height default to font height
-
-From: Thorsten Behrens <thb at openoffice.org>
-
-
----
-
- sd/source/ui/table/tablefunction.cxx |    7 ++++++-
- 1 files changed, 6 insertions(+), 1 deletions(-)
-
-
-diff --git sd/source/ui/table/tablefunction.cxx sd/source/ui/table/tablefunction.cxx
-index 3485f09..6123080 100755
---- sd/source/ui/table/tablefunction.cxx
-+++ sd/source/ui/table/tablefunction.cxx
-@@ -67,6 +67,7 @@
- #include "DrawViewShell.hxx"
- #include "drawdoc.hxx"
- #include "DrawDocShell.hxx"
-+#include "Outliner.hxx"
- #include "Window.hxx"
- #include "drawview.hxx"
- #include "sdresid.hxx"
-@@ -158,8 +159,12 @@ void DrawViewShell::FuTable(SfxRequest& rReq)
-         }
-         else
-         {
--            Size aSize( 14100, 200 );
-+            Size aSize( 14100, 3000 );
- 
-+            ::sd::Outliner* pSdOutliner = GetDoc()->GetOutliner();
-+            const long nTextHeight = pSdOutliner->GetTextHeight();
-+            aSize.Height() = std::max(aSize.Height(),nRows*nTextHeight);
-+            
-             Point aPos;
-             Rectangle aWinRect(aPos, GetActiveWindow()->GetOutputSizePixel() );
-             aPos = aWinRect.Center();
diff --git a/patches/dev300/svx-ppt-tablerow-height-fix.diff b/patches/dev300/svx-ppt-tablerow-height-fix.diff
deleted file mode 100644
index 8281d8b..0000000
--- a/patches/dev300/svx-ppt-tablerow-height-fix.diff
+++ /dev/null
@@ -1,20 +0,0 @@
----
- svx/source/table/cell.cxx |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git svx/source/table/cell.cxx svx/source/table/cell.cxx
-index 3d75c03..e8ea7c7 100644
---- svx/source/table/cell.cxx
-+++ svx/source/table/cell.cxx
-@@ -653,7 +653,7 @@ sal_Int32 Cell::getMinimumHeight()
-         pEditOutliner->SetMaxAutoPaperSize(aSize);
-         nMinimumHeight = pEditOutliner->GetTextHeight()+1;
-     }
--    else /*if ( hasText() )*/
-+    else if( hasText() )
-     {
-         Outliner& rOutliner=rTableObj.ImpGetDrawOutliner();
-         rOutliner.SetPaperSize(aSize);
--- 
-1.7.0.1
-
commit 1cf81c2e4d85ec776ce99e671a9ca48ea466c705
Author: Thorsten Behrens <tbehrens at novell.com>
Date:   Tue Oct 26 16:28:46 2010 +0200

    Moved transogl-transitions-newsflash-pptin.diff to git

diff --git a/patches/dev300/apply b/patches/dev300/apply
index 86f6e1e..cceaefc 100755
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -2404,9 +2404,6 @@ sled10-splash.diff, i#123456, pmladek
 [ Fixes ]
 svx-ppt-bullet-offset-fix.diff, n#593609, rodo
 
-[ OpenGLTransitions ]
-transogl-transitions-newsflash-pptin.diff
-
 [ Fixes ]
 sd-pptx-export-build-fix.diff, rodo
 sd-pptx-export-build-fix-2.diff, rodo
diff --git a/patches/dev300/transogl-transitions-newsflash-pptin.diff b/patches/dev300/transogl-transitions-newsflash-pptin.diff
deleted file mode 100644
index 54307a2..0000000
--- a/patches/dev300/transogl-transitions-newsflash-pptin.diff
+++ /dev/null
@@ -1,24 +0,0 @@
----
- sd/source/filter/ppt/pptin.cxx |    4 ----
- 1 files changed, 0 insertions(+), 4 deletions(-)
-
-diff --git sd/source/filter/ppt/pptin.cxx sd/source/filter/ppt/pptin.cxx
-index 2dfee90..723fcbd 100755
---- sd/source/filter/ppt/pptin.cxx
-+++ sd/source/filter/ppt/pptin.cxx
-@@ -1784,12 +1784,8 @@ void ImplSdPPTImport::ImportPageEffect( SdPage* pPage, const sal_Bool bNewAnimat
-                                     break;
-                                     case PPT_TRANSITION_TYPE_NEWSFLASH :
-                                     {
--                                        pPage->setTransitionType( animations::TransitionType::FOURBOXWIPE );
--                                        pPage->setTransitionSubtype( animations::TransitionSubType::CORNERSOUT );
--/*
-                                         pPage->setTransitionType( animations::TransitionType::ZOOM );
-                                         pPage->setTransitionSubtype( animations::TransitionSubType::ROTATEIN );
--*/
-                                     }
-                                     break;
-                                     case PPT_TRANSITION_TYPE_SMOOTHFADE :
--- 
-1.7.0.1
-
commit ebfedcf8f0b2514183d1657b3d6e19ca2ce7fc71
Author: Thorsten Behrens <tbehrens at novell.com>
Date:   Tue Oct 26 16:27:01 2010 +0200

    Moved slideshow-cutblack.diff to git

diff --git a/patches/dev300/apply b/patches/dev300/apply
index 8f71de7..86f6e1e 100755
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -1917,9 +1917,6 @@ sw-do-not-capture-surround-through-objs-patch.diff, n#367341, i#18732, flr
 
 [ Fixes ]
 cppcanvas-fix-roundcorners.diff, rodo
-
-slideshow-cutblack.diff, thorsten
-
 unoxml-boost-workaround.diff, thorsten
 
 
diff --git a/patches/dev300/slideshow-cutblack.diff b/patches/dev300/slideshow-cutblack.diff
deleted file mode 100644
index b9430a0..0000000
--- a/patches/dev300/slideshow-cutblack.diff
+++ /dev/null
@@ -1,206 +0,0 @@
----
- sd/source/filter/ppt/pptin.cxx                     |    6 +-
- sd/xml/transitions.xml                             |    3 +
- .../engine/transitions/slidetransitionfactory.cxx  |  115 ++++++++++++++++++--
- .../engine/transitions/transitionfactorytab.cxx    |   14 +++
- 4 files changed, 127 insertions(+), 11 deletions(-)
-
-diff --git sd/source/filter/ppt/pptin.cxx sd/source/filter/ppt/pptin.cxx
-index 5209667..2dfee90 100755
---- sd/source/filter/ppt/pptin.cxx
-+++ sd/source/filter/ppt/pptin.cxx
-@@ -1626,7 +1626,11 @@ void ImplSdPPTImport::ImportPageEffect( SdPage* pPage, const sal_Bool bNewAnimat
-                                             if ( nDirection == 0 )
-                                                 pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_NONE );				// Direkt
-                                             else if ( nDirection == 1 )
--                                                pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_NONE );				// Direkt ueber Schwarz
-+                                            {
-+                                                pPage->setTransitionType( animations::TransitionType::BARWIPE );
-+                                                pPage->setTransitionSubtype( animations::TransitionSubType::FADEOVERCOLOR );
-+                                                pPage->setTransitionFadeColor( 0 );
-+                                            }
-                                         }
-                                         else
-                                             pPage->setTransitionType( 0 );
-diff --git sd/xml/transitions.xml sd/xml/transitions.xml
-index a9a32eb..92bdb52 100644
---- sd/xml/transitions.xml
-+++ sd/xml/transitions.xml
-@@ -111,6 +111,9 @@
-  <anim:par pres:preset-id="fade-through-black">
-   <anim:transitionFilter smil:type="fade" smil:subtype="fadeOverColor" smil:fadeColor="#000000"/>
-  </anim:par>
-+ <anim:par pres:preset-id="cut-through-black">
-+  <anim:transitionFilter smil:type="barWipe" smil:subtype="fadeOverColor" smil:fadeColor="#000000"/>
-+ </anim:par>
-  <anim:par pres:preset-id="cover-down">
-   <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromTop"/>
-  </anim:par>
-diff --git slideshow/source/engine/transitions/slidetransitionfactory.cxx slideshow/source/engine/transitions/slidetransitionfactory.cxx
-index 28636b2..22050b6 100644
---- slideshow/source/engine/transitions/slidetransitionfactory.cxx
-+++ slideshow/source/engine/transitions/slidetransitionfactory.cxx
-@@ -473,6 +473,89 @@ void FadingSlideChange::performOut(
-     }
- }
- 
-+class CutSlideChange : public SlideChangeBase
-+{
-+public:
-+    /** Create a new SlideChanger, for the given leaving and
-+        entering slides, which applies a cut effect.
-+    */
-+    CutSlideChange(
-+        boost::optional<SlideSharedPtr> const & leavingSlide,
-+        const SlideSharedPtr&                   pEnteringSlide,
-+        const RGBColor&                          rFadeColor,
-+        const SoundPlayerSharedPtr&             pSoundPlayer,
-+        const UnoViewContainer&                 rViewContainer,
-+        ScreenUpdater&                          rScreenUpdater,
-+        EventMultiplexer&                       rEventMultiplexer )
-+        : SlideChangeBase( leavingSlide,
-+                           pEnteringSlide,
-+                           pSoundPlayer,
-+                           rViewContainer,
-+                           rScreenUpdater,
-+                           rEventMultiplexer ),
-+          maFadeColor( rFadeColor ),
-+          mbFirstTurn( true )
-+        {}
-+
-+    virtual void performIn(
-+        const ::cppcanvas::CustomSpriteSharedPtr&   rSprite,
-+        const ViewEntry&                            rViewEntry,
-+        const ::cppcanvas::CanvasSharedPtr&         rDestinationCanvas,
-+        double                                      t );
-+
-+    virtual void performOut(
-+        const ::cppcanvas::CustomSpriteSharedPtr&  rSprite,
-+        const ViewEntry&                           rViewEntry,
-+        const ::cppcanvas::CanvasSharedPtr&        rDestinationCanvas,
-+        double                                     t );
-+
-+private:
-+    RGBColor maFadeColor;
-+    bool    mbFirstTurn;
-+};
-+
-+void CutSlideChange::performIn(
-+    const ::cppcanvas::CustomSpriteSharedPtr&   rSprite,
-+    const ViewEntry&                            /*rViewEntry*/,
-+    const ::cppcanvas::CanvasSharedPtr&         /*rDestinationCanvas*/,
-+    double                                      t )
-+{
-+    ENSURE_OR_THROW(
-+        rSprite,
-+        "CutSlideChange::performIn(): Invalid sprite" );
-+
-+    // After 2/3rd of the active time, display new slide
-+    rSprite->setAlpha( t > 2/3.0 ? 1.0 : 0.0 );
-+}
-+
-+void CutSlideChange::performOut(
-+    const ::cppcanvas::CustomSpriteSharedPtr&  rSprite,
-+    const ViewEntry&                           rViewEntry,
-+    const ::cppcanvas::CanvasSharedPtr&        rDestinationCanvas,
-+    double                                     t )
-+{
-+    ENSURE_OR_THROW(
-+        rSprite,
-+        "CutSlideChange::performOut(): Invalid sprite" );
-+    ENSURE_OR_THROW(
-+        rDestinationCanvas,
-+        "FadingSlideChange::performOut(): Invalid dest canvas" );
-+
-+    if( mbFirstTurn )
-+    {
-+        mbFirstTurn = false;
-+
-+        // clear page to given fade color. 'Leaving' slide is
-+        // painted atop of that
-+        fillPage( rDestinationCanvas,
-+                  getEnteringSlideSizePixel( rViewEntry.mpView ),
-+                  maFadeColor );
-+    }
-+
-+    // Until 1/3rd of the active time, display old slide.
-+    rSprite->setAlpha( t > 1/3.0 ? 0.0 : 1.0 );
-+}
-+
- class MovingSlideChange : public SlideChangeBase
- {
-     /// Direction vector for leaving slide,
-@@ -1007,6 +1090,7 @@ NumberAnimationSharedPtr TransitionFactory::createSlideTransition(
-                             pSoundPlayer );
-                     }
- 
-+                    case animations::TransitionType::BARWIPE:
-                     case animations::TransitionType::FADE:
-                     {
-                         // black page:
-@@ -1038,16 +1122,27 @@ NumberAnimationSharedPtr TransitionFactory::createSlideTransition(
-                                                   "SlideTransitionFactory::createSlideTransition(): Unknown FADE subtype" );
-                         }
- 
--                        return NumberAnimationSharedPtr( 
--                            new FadingSlideChange(
--                                leavingSlide,
--                                pEnteringSlide,
--                                comphelper::make_optional(
--                                    rTransitionFadeColor),
--                                pSoundPlayer,
--                                rViewContainer,
--                                rScreenUpdater,
--                                rEventMultiplexer ));
-+                        if( nTransitionType == animations::TransitionType::FADE )
-+                            return NumberAnimationSharedPtr(
-+                                new FadingSlideChange(
-+                                    leavingSlide,
-+                                    pEnteringSlide,
-+                                    comphelper::make_optional(
-+                                        rTransitionFadeColor),
-+                                    pSoundPlayer,
-+                                    rViewContainer,
-+                                    rScreenUpdater,
-+                                    rEventMultiplexer ));
-+                        else
-+                            return NumberAnimationSharedPtr(
-+                                new CutSlideChange(
-+                                    leavingSlide,
-+                                    pEnteringSlide,
-+                                    rTransitionFadeColor,
-+                                    pSoundPlayer,
-+                                    rViewContainer,
-+                                    rScreenUpdater,
-+                                    rEventMultiplexer ));
-                     }
-                 }
-             }
-diff --git slideshow/source/engine/transitions/transitionfactorytab.cxx slideshow/source/engine/transitions/transitionfactorytab.cxx
-index 5a467fd..529acf3 100644
---- slideshow/source/engine/transitions/transitionfactorytab.cxx
-+++ slideshow/source/engine/transitions/transitionfactorytab.cxx
-@@ -2015,6 +2015,20 @@ static const TransitionInfo lcl_transitionInfo[] =
-         true,                   // 'out' by parameter sweep inversion
-         false                   // scale isotrophically to target size
-     },
-+    // this is the cut through black fade (does not fade, but does a
-+    // hard cut)
-+    {
-+        animations::TransitionType::BARWIPE,
-+        animations::TransitionSubType::FADEOVERCOLOR,
-+        TransitionInfo::TRANSITION_SPECIAL,
-+        // TODO(F2): Setup parameters
-+        0.0,                    // no rotation
-+        1.0,                    // no scaling
-+        1.0,                    // no scaling
-+        TransitionInfo::REVERSEMETHOD_IGNORE,
-+        true,                   // 'out' by parameter sweep inversion
-+        false                   // scale isotrophically to target size
-+    },
-     
-     {
-         // mapped to RandomWipe:
--- 
-1.7.0.1
-
commit 56233947539c9d604d93a5f0e0a11507c8b7f180
Author: Thorsten Behrens <tbehrens at novell.com>
Date:   Tue Oct 26 16:17:17 2010 +0200

    Moved officecfg-bighandles-default to git

diff --git a/patches/dev300/apply b/patches/dev300/apply
index f00558c..8f71de7 100755
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -1917,7 +1917,6 @@ sw-do-not-capture-surround-through-objs-patch.diff, n#367341, i#18732, flr
 
 [ Fixes ]
 cppcanvas-fix-roundcorners.diff, rodo
-officecfg-bighandles-default.diff, thorsten
 
 slideshow-cutblack.diff, thorsten
 
diff --git a/patches/dev300/officecfg-bighandles-default.diff b/patches/dev300/officecfg-bighandles-default.diff
deleted file mode 100644
index 6ce3642..0000000
--- a/patches/dev300/officecfg-bighandles-default.diff
+++ /dev/null
@@ -1,34 +0,0 @@
----
- .../registry/schema/org/openoffice/Office/Draw.xcs |    2 +-
- .../schema/org/openoffice/Office/Impress.xcs       |    2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git officecfg/registry/schema/org/openoffice/Office/Draw.xcs officecfg/registry/schema/org/openoffice/Office/Draw.xcs
-index e133b7a..a48598e 100644
---- officecfg/registry/schema/org/openoffice/Office/Draw.xcs
-+++ officecfg/registry/schema/org/openoffice/Office/Draw.xcs
-@@ -384,7 +384,7 @@
- 					<desc>Indicates whether to show big (true) or small (false) handles.</desc>
- 					<label>Big Handles</label>
- 				</info>
--				<value>false</value>
-+                <value>true</value>
- 			</prop>
- 			<prop oor:name="ModifyWithAttributes" oor:type="xs:boolean">
- 				<!-- OldPath: Draw/Other -->
-diff --git officecfg/registry/schema/org/openoffice/Office/Impress.xcs officecfg/registry/schema/org/openoffice/Office/Impress.xcs
-index 533a8bb..947a26c 100644
---- officecfg/registry/schema/org/openoffice/Office/Impress.xcs
-+++ officecfg/registry/schema/org/openoffice/Office/Impress.xcs
-@@ -426,7 +426,7 @@
-           <desc>Indicates whether to show big (true) or small (false) handles.</desc>
-           <label>Big Handles</label>
-         </info>
--        <value>false</value>
-+        <value>true</value>
-       </prop>
-       <prop oor:name="ModifyWithAttributes" oor:type="xs:boolean">
-         <!-- OldPath: Impress/Other -->
--- 
-1.7.0.1
-
commit bd211ff58864daf3a7a850dfa2f6be76006dde3d
Author: Thorsten Behrens <tbehrens at novell.com>
Date:   Tue Oct 26 15:51:46 2010 +0200

    Moved patch to git

diff --git a/patches/dev300/apply b/patches/dev300/apply
index 5f59024..f00558c 100755
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -1895,8 +1895,6 @@ svx-hacky-htmlselect-control-import.diff, n#523191, noelpwer
 
 sd-slideshow-slideshowview-transformation-fix.diff, rodo
 
-sd-view-zoom-fix.diff, n#380013, i#88939, thorsten
-
 sd-custom-show-fix.diff, n#355638, i#90145, thorsten
 
 # apply this patch if you need to disable vcl grabbing your mouse -
diff --git a/patches/dev300/sd-view-zoom-fix.diff b/patches/dev300/sd-view-zoom-fix.diff
deleted file mode 100644
index bd11ae0..0000000
--- a/patches/dev300/sd-view-zoom-fix.diff
+++ /dev/null
@@ -1,74 +0,0 @@
----
- sd/source/ui/inc/Window.hxx    |    1 +
- sd/source/ui/view/sdwindow.cxx |   19 +++++++++++++++++--
- 2 files changed, 18 insertions(+), 2 deletions(-)
-
-diff --git sd/source/ui/inc/Window.hxx sd/source/ui/inc/Window.hxx
-index 14919da..921f928 100755
---- sd/source/ui/inc/Window.hxx
-+++ sd/source/ui/inc/Window.hxx
-@@ -170,6 +170,7 @@ protected:
-     Point maWinPos;
-     Point maViewOrigin;
-     Size maViewSize;
-+    Size maPrevSize; // contains previous window size in logical coords
-     USHORT mnMinZoom;
-     USHORT mnMaxZoom;
-     /** This flag tells whether to re-calculate the minimal zoom factor
-diff --git sd/source/ui/view/sdwindow.cxx sd/source/ui/view/sdwindow.cxx
-index 4f8dfe9..6c74aca 100755
---- sd/source/ui/view/sdwindow.cxx
-+++ sd/source/ui/view/sdwindow.cxx
-@@ -72,6 +72,7 @@ Window::Window(::Window* pParent)
-       maWinPos(0, 0),			// vorsichtshalber; die Werte sollten aber
-       maViewOrigin(0, 0),		// vom Besitzer des Fensters neu gesetzt
-       maViewSize(1000, 1000),	// werden
-+      maPrevSize(-1,-1),
-       mnMinZoom(MIN_ZOOM),
-       mnMaxZoom(MAX_ZOOM),
-       mbMinZoomAutoCalc(false),
-@@ -471,6 +472,9 @@ long Window::SetZoomFactor(long nZoom)
-     aMap.SetScaleY(Fraction(nZoom, 100));
-     SetMapMode(aMap);
- 
-+    // invalidate previous size - it was relative to the old scaling
-+    maPrevSize = Size(-1,-1);
-+
-     // Update the map mode's origin (to what effect?).
-     UpdateMapOrigin();
- 
-@@ -667,11 +671,20 @@ void Window::SetMinZoomAutoCalc (bool bAuto)
- 
- void Window::UpdateMapOrigin(BOOL bInvalidate)
- {
--    BOOL	bChanged = FALSE;
--    Size	aWinSize = PixelToLogic(GetOutputSizePixel());
-+    BOOL	   bChanged = FALSE;
-+    const Size aWinSize = PixelToLogic(GetOutputSizePixel());
- 
-     if ( mbCenterAllowed )
-     {
-+        if( maPrevSize != Size(-1,-1) )
-+        {
-+            // keep view centered around current pos, when window
-+            // resizes
-+            maWinPos.X() -= (aWinSize.Width() - maPrevSize.Width()) / 2;
-+            maWinPos.Y() -= (aWinSize.Height() - maPrevSize.Height()) / 2;
-+            bChanged = TRUE;
-+        }
-+
-         if ( maWinPos.X() > maViewSize.Width() - aWinSize.Width() )
-         {
-             maWinPos.X() = maViewSize.Width() - aWinSize.Width();
-@@ -696,6 +709,8 @@ void Window::UpdateMapOrigin(BOOL bInvalidate)
- 
-     UpdateMapMode ();
- 
-+    maPrevSize = aWinSize;
-+
-     if (bChanged && bInvalidate)
-         Invalidate();
- }
--- 
-1.7.0.1
-


More information about the Libreoffice-commits mailing list