[Libreoffice-commits] core.git: 9 commits - filter/source oox/source sd/source svx/source sw/source

Armin Le Grand alg at apache.org
Sun Mar 31 07:23:28 PDT 2013


 filter/source/msfilter/escherex.cxx                     |   49 ++++++++---
 filter/source/msfilter/svdfppt.cxx                      |    6 +
 oox/source/vml/vmlshapecontext.cxx                      |   35 +++++++-
 sd/source/filter/eppt/pptexanimations.cxx               |    2 
 sd/source/filter/ppt/pptin.cxx                          |    8 +
 svx/source/customshapes/EnhancedCustomShapeGeometry.cxx |    5 -
 svx/source/sdr/contact/viewcontactofsdrcaptionobj.cxx   |   68 +++++++++++-----
 sw/source/filter/ww8/wrtw8esh.cxx                       |    6 +
 sw/source/filter/ww8/ww8par5.cxx                        |    2 
 9 files changed, 139 insertions(+), 42 deletions(-)

New commits:
commit 61651ece1a1eaa5012c69e3b0b36fcddb2e37c71
Author: Armin Le Grand <alg at apache.org>
Date:   Wed Sep 26 11:26:49 2012 +0000

    #119750# corrected opacity import for SC comment shapes and their shadow visualisation

diff --git a/oox/source/vml/vmlshapecontext.cxx b/oox/source/vml/vmlshapecontext.cxx
index 79dac8e..c5edd00 100644
--- a/oox/source/vml/vmlshapecontext.cxx
+++ b/oox/source/vml/vmlshapecontext.cxx
@@ -59,6 +59,35 @@ OptValue< double > lclDecodePercent( const AttributeList& rAttribs, sal_Int32 nT
     return OptValue< double >();
 }
 
+/** #119750# Special method for opacity; it *should* be a percentage value, but there are cases
+    where a value relative to 0xffff (65536) is used, ending with an 'f'
+ */
+OptValue< double > lclDecodeOpacity( const AttributeList& rAttribs, sal_Int32 nToken, double fDefValue )
+{
+    OptValue< OUString > oValue = rAttribs.getString( nToken );
+    double fRetval(fDefValue);
+
+    if( oValue.has() )
+    {
+        const OUString aString(oValue.get());
+        const sal_Int32 nLength(aString.getLength());
+
+        if(nLength > 0)
+        {
+            if(aString.endsWithAsciiL(RTL_CONSTASCII_STRINGPARAM("f")))
+            {
+                fRetval = std::max(0.0, std::min(1.0, aString.toDouble() / 65536.0));
+            }
+            else
+            {
+                fRetval = ConversionHelper::decodePercent( aString, fDefValue );
+            }
+        }
+    }
+
+    return OptValue< double >(fRetval);
+}
+
 /** Returns the integer value pair from the specified VML attribute (if present).
  */
 OptValue< Int32Pair > lclDecodeInt32Pair( const AttributeList& rAttribs, sal_Int32 nToken )
@@ -298,7 +327,7 @@ ContextHandlerRef ShapeTypeContext::onCreateContext( sal_Int32 nElement, const A
             mrTypeModel.maStrokeModel.maEndArrow.moArrowWidth = rAttribs.getToken( XML_endarrowwidth );
             mrTypeModel.maStrokeModel.maEndArrow.moArrowLength = rAttribs.getToken( XML_endarrowlength );
             mrTypeModel.maStrokeModel.moColor.assignIfUsed( rAttribs.getString( XML_color ) );
-            mrTypeModel.maStrokeModel.moOpacity = lclDecodePercent( rAttribs, XML_opacity, 1.0 );
+            mrTypeModel.maStrokeModel.moOpacity = lclDecodeOpacity( rAttribs, XML_opacity, 1.0 );
             mrTypeModel.maStrokeModel.moWeight.assignIfUsed( rAttribs.getString( XML_weight ) );
             mrTypeModel.maStrokeModel.moDashStyle = rAttribs.getString( XML_dashstyle );
             mrTypeModel.maStrokeModel.moLineStyle = rAttribs.getToken( XML_linestyle );
@@ -308,9 +337,9 @@ ContextHandlerRef ShapeTypeContext::onCreateContext( sal_Int32 nElement, const A
         case VML_TOKEN( fill ):
             mrTypeModel.maFillModel.moFilled.assignIfUsed( lclDecodeBool( rAttribs, XML_on ) );
             mrTypeModel.maFillModel.moColor.assignIfUsed( rAttribs.getString( XML_color ) );
-            mrTypeModel.maFillModel.moOpacity = lclDecodePercent( rAttribs, XML_opacity, 1.0 );
+            mrTypeModel.maFillModel.moOpacity = lclDecodeOpacity( rAttribs, XML_opacity, 1.0 );
             mrTypeModel.maFillModel.moColor2 = rAttribs.getString( XML_color2 );
-            mrTypeModel.maFillModel.moOpacity2 = lclDecodePercent( rAttribs, XML_opacity2, 1.0 );
+            mrTypeModel.maFillModel.moOpacity2 = lclDecodeOpacity( rAttribs, XML_opacity2, 1.0 );
             mrTypeModel.maFillModel.moType = rAttribs.getToken( XML_type );
             mrTypeModel.maFillModel.moAngle = rAttribs.getInteger( XML_angle );
             mrTypeModel.maFillModel.moFocus = lclDecodePercent( rAttribs, XML_focus, 0.0 );
diff --git a/svx/source/sdr/contact/viewcontactofsdrcaptionobj.cxx b/svx/source/sdr/contact/viewcontactofsdrcaptionobj.cxx
index a990384..9076ba7 100644
--- a/svx/source/sdr/contact/viewcontactofsdrcaptionobj.cxx
+++ b/svx/source/sdr/contact/viewcontactofsdrcaptionobj.cxx
@@ -34,6 +34,7 @@
 #include <svx/xfltrit.hxx>
 #include <basegfx/polygon/b2dpolygontools.hxx>
 #include <svx/sdr/primitive2d/sdrdecompositiontools.hxx>
+#include <basegfx/polygon/b2dpolygonclipper.hxx>
 
 //////////////////////////////////////////////////////////////////////////////
 
@@ -107,32 +108,32 @@ namespace sdr
                 // for SC, the caption object may have a specialized shadow. The usual object shadow is off
                 // and a specialized shadow gets created here (see old paint)
                 const SdrShadowColorItem& rShadColItem = (SdrShadowColorItem&)(rItemSet.Get(SDRATTR_SHADOWCOLOR));
-                const sal_uInt16 nTransp(((SdrShadowTransparenceItem&)(rItemSet.Get(SDRATTR_SHADOWTRANSPARENCE))).GetValue());
-                const Color aShadCol(rShadColItem.GetColorValue());
-                const XFillStyle eStyle = ((XFillStyleItem&)(rItemSet.Get(XATTR_FILLSTYLE))).GetValue();
+                const sal_uInt16 nShadowTransparence(((SdrShadowTransparenceItem&)(rItemSet.Get(SDRATTR_SHADOWTRANSPARENCE))).GetValue());
+                const Color aShadowColor(rShadColItem.GetColorValue());
+                const XFillStyle eShadowStyle = ((XFillStyleItem&)(rItemSet.Get(XATTR_FILLSTYLE))).GetValue();
 
                 // Create own ItemSet and modify as needed
                 // Always hide lines for special calc shadow
                 SfxItemSet aSet(rItemSet);
                 aSet.Put(XLineStyleItem(XLINE_NONE));
 
-                if(XFILL_HATCH == eStyle)
+                if(XFILL_HATCH == eShadowStyle)
                 {
                     // #41666# Hatch color is set hard to shadow color
                     XHatch aHatch = ((XFillHatchItem&)(rItemSet.Get(XATTR_FILLHATCH))).GetHatchValue();
-                    aHatch.SetColor(aShadCol);
+                    aHatch.SetColor(aShadowColor);
                     aSet.Put(XFillHatchItem(String(),aHatch));
                 }
                 else
                 {
-                    if(XFILL_NONE != eStyle && XFILL_SOLID != eStyle)
+                    if(XFILL_SOLID != eShadowStyle)
                     {
-                        // force fill to solid (for Gradient and Bitmap)
+                        // force fill to solid (for Gradient, Bitmap and *no* fill (#119750# not filled comments *have* shadow))
                         aSet.Put(XFillStyleItem(XFILL_SOLID));
                     }
 
-                    aSet.Put(XFillColorItem(String(),aShadCol));
-                    aSet.Put(XFillTransparenceItem(nTransp));
+                    aSet.Put(XFillColorItem(String(),aShadowColor));
+                    aSet.Put(XFillTransparenceItem(nShadowTransparence));
                 }
 
                 // crete FillAttribute from modified ItemSet
@@ -145,18 +146,43 @@ namespace sdr
                     // add shadow offset to object matrix
                     const sal_uInt32 nXDist(((SdrShadowXDistItem&)(rItemSet.Get(SDRATTR_SHADOWXDIST))).GetValue());
                     const sal_uInt32 nYDist(((SdrShadowYDistItem&)(rItemSet.Get(SDRATTR_SHADOWYDIST))).GetValue());
-                    aObjectMatrix.translate(nXDist, nYDist);
-
-                    // create unit outline polygon as geometry (see SdrCaptionPrimitive2D::create2DDecomposition)
-                    basegfx::B2DPolygon aUnitOutline(basegfx::tools::createPolygonFromRect(
-                        basegfx::B2DRange(0.0, 0.0, 1.0, 1.0), fCornerRadiusX, fCornerRadiusY));
-
-                    // create the specialized shadow primitive
-                    xSpecialShadow = drawinglayer::primitive2d::createPolyPolygonFillPrimitive(
-                        basegfx::B2DPolyPolygon(aUnitOutline),
-                        aObjectMatrix,
-                        aFill,
-                        drawinglayer::attribute::FillGradientAttribute());
+
+                    if(nXDist || nYDist)
+                    {
+                        // #119750# create obect and shadow outline, clip shadow outline
+                        // on object outline. If there is a rest, create shadow. Do this to
+                        // emulate that shadow is *not* visible behind the object for
+                        // transparent object fill for comments in excel
+                        basegfx::B2DPolygon aObjectOutline(
+                            basegfx::tools::createPolygonFromRect(
+                                basegfx::B2DRange(0.0, 0.0, 1.0, 1.0),
+                                fCornerRadiusX,
+                                fCornerRadiusY));
+                        aObjectOutline.transform(aObjectMatrix);
+
+                        // create shadow outline
+                        basegfx::B2DPolygon aShadowOutline(aObjectOutline);
+                        aShadowOutline.transform(
+                            basegfx::tools::createTranslateB2DHomMatrix(nXDist, nYDist));
+
+                        // clip shadow outline against object outline
+                        const basegfx::B2DPolyPolygon aClippedShadow(
+                            basegfx::tools::clipPolygonOnPolyPolygon(
+                                aShadowOutline,
+                                basegfx::B2DPolyPolygon(aObjectOutline),
+                                false, // take the outside
+                                false));
+
+                        if(aClippedShadow.count())
+                        {
+                            // if there is shadow, create the specialized shadow primitive
+                            xSpecialShadow = drawinglayer::primitive2d::createPolyPolygonFillPrimitive(
+                                aClippedShadow,
+                                basegfx::B2DHomMatrix(),
+                                aFill,
+                                drawinglayer::attribute::FillGradientAttribute());
+                        }
+                    }
                 }
 
                 if(xSpecialShadow.is())
commit bdd1a3e1001258a7af5366d73a24ecb3173dab70
Author: Andre Fischer <af at apache.org>
Date:   Mon Jul 9 11:57:55 2012 +0000

    #i120039# Export more bitmap fill style parameters.
    
    Reported by: Du Jing
    Patch by: zjchen
    Review by: Andre Fischer

diff --git a/filter/source/msfilter/escherex.cxx b/filter/source/msfilter/escherex.cxx
index 72095b7..880cc51 100644
--- a/filter/source/msfilter/escherex.cxx
+++ b/filter/source/msfilter/escherex.cxx
@@ -1453,7 +1453,43 @@ sal_Bool EscherPropertyContainer::CreateGraphicProperties(
             }
 
             if ( eBitmapMode == ::com::sun::star::drawing::BitmapMode_REPEAT )
-                AddOpt( ESCHER_Prop_fillType, ESCHER_FillTexture );
+            {
+                sal_Int32 nSizeX = 0,nSizeY = 0,nOffsetX = 0,nOffsetY = 0,nPosOffsetX = 0,nPosOffsetY = 0;
+                if ( EscherPropertyValueHelper::GetPropertyValue( aAny, rXPropSet,
+                        String( RTL_CONSTASCII_USTRINGPARAM( "FillBitmapSizeX" ) ), sal_True ) )
+                {
+                    aAny >>= nSizeX;
+                }
+                if ( EscherPropertyValueHelper::GetPropertyValue( aAny, rXPropSet,
+                        String( RTL_CONSTASCII_USTRINGPARAM( "FillBitmapSizeY" ) ), sal_True ) )
+                {
+                    aAny >>= nSizeY;
+                }
+                if ( EscherPropertyValueHelper::GetPropertyValue( aAny, rXPropSet,
+                        String( RTL_CONSTASCII_USTRINGPARAM( "FillBitmapOffsetX" ) ), sal_True ) )
+                {
+                    aAny >>= nOffsetX;
+                }
+                if ( EscherPropertyValueHelper::GetPropertyValue( aAny, rXPropSet,
+                        String( RTL_CONSTASCII_USTRINGPARAM( "FillBitmapOffsetY" ) ), sal_True ) )
+                {
+                    aAny >>= nOffsetY;
+                }
+                if ( EscherPropertyValueHelper::GetPropertyValue( aAny, rXPropSet,
+                        String( RTL_CONSTASCII_USTRINGPARAM( "FillBitmapPositionOffsetX" ) ), sal_True ) )
+                {
+                    aAny >>= nPosOffsetX;
+                }
+                if ( EscherPropertyValueHelper::GetPropertyValue( aAny, rXPropSet,
+                        String( RTL_CONSTASCII_USTRINGPARAM( "FillBitmapPositionOffsetY" ) ), sal_True ) )
+                {
+                    aAny >>= nPosOffsetY;
+                }
+                if(nSizeX == -100 && nSizeY == -100 && nOffsetX == 0 && nOffsetY == 0 && nPosOffsetX == 0 && nPosOffsetY == 0)
+                    AddOpt( ESCHER_Prop_fillType, ESCHER_FillPicture );
+                else
+                    AddOpt( ESCHER_Prop_fillType, ESCHER_FillTexture );
+            }
             else
                 AddOpt( ESCHER_Prop_fillType, ESCHER_FillPicture );
 
commit c81f869a023966ffdfde75f743d70875da19e835
Author: Andre Fischer <af at apache.org>
Date:   Mon Jul 9 08:53:58 2012 +0000

    #i119536# Fixed rotation when importing PPT.
    
    Reported by: Li Feng Wang
    Patch by: Ma Bingbing
    Reviewed by: Arming Le Grand and Andre Fischer

diff --git a/filter/source/msfilter/escherex.cxx b/filter/source/msfilter/escherex.cxx
index 9c9d727..72095b7 100644
--- a/filter/source/msfilter/escherex.cxx
+++ b/filter/source/msfilter/escherex.cxx
@@ -1450,17 +1450,6 @@ sal_Bool EscherPropertyContainer::CreateGraphicProperties(
                     pGraphicAttr->SetMirrorFlags( BMP_MIRROR_HORZ );
                 if ( bIsGraphicMtf )
                     AddOpt( ESCHER_Prop_Rotation, ( ( ((sal_Int32)nAngle << 16 ) / 10 ) + 0x8000 ) &~ 0xffff );
-                else
-                {
-                    pGraphicAttr->SetRotation( nAngle );
-                    if ( nAngle && pShapeBoundRect )   // up to xp ppoint does not rotate bitmaps !
-                    {
-                        Polygon aPoly( *pShapeBoundRect );
-                        aPoly.Rotate( pShapeBoundRect->TopLeft(), nAngle );
-                        *pShapeBoundRect = aPoly.GetBoundRect();
-                        bSuppressRotation = sal_True;
-                    }
-                }
             }
 
             if ( eBitmapMode == ::com::sun::star::drawing::BitmapMode_REPEAT )
commit 6cd346c5e8be9065a5578f2caf3f1eacd964e783
Author: Lei De Bin <leidb at apache.org>
Date:   Mon Aug 20 00:26:19 2012 +0000

    #120573# fix the export issue for the text box in header&footer with the margin mirrored layout
    
    Reported by: Yan Ji
    Patch by: Lei De Bin
    Review by: Chen Zuo Jun

diff --git a/sw/source/filter/ww8/wrtw8esh.cxx b/sw/source/filter/ww8/wrtw8esh.cxx
index d0f8fa9..d721e8c 100644
--- a/sw/source/filter/ww8/wrtw8esh.cxx
+++ b/sw/source/filter/ww8/wrtw8esh.cxx
@@ -2229,6 +2229,12 @@ bool WinwordAnchoring::ConvertPosition( SwFmtHoriOrient& _iorHoriOri,
         {
             eHoriConv = CONV2PG;
         }
+        else if ( _iorHoriOri.IsPosToggle()
+                && _iorHoriOri.GetHoriOrient() == text::HoriOrientation::RIGHT )
+        {
+            eHoriConv = NO_CONV;
+            _iorHoriOri.SetHoriOrient( text::HoriOrientation::OUTSIDE );
+        }
         else
         {
             switch ( _iorHoriOri.GetRelationOrient() )
commit ec585b964e26de967f0373da0d2d9dfd20f8866c
Author: Lei De Bin <leidb at apache.org>
Date:   Fri Jul 20 00:57:59 2012 +0000

    #119581# fix import issue for left and right horizontal alignment in text box
    
    Reported by: liu ping tan
    Patch by: Li Jian Yuan
    Review by: Lei De Bin

diff --git a/filter/source/msfilter/svdfppt.cxx b/filter/source/msfilter/svdfppt.cxx
index d15ffff..200e7b4 100644
--- a/filter/source/msfilter/svdfppt.cxx
+++ b/filter/source/msfilter/svdfppt.cxx
@@ -938,6 +938,12 @@ SdrObject* SdrEscherImport::ProcessObj( SvStream& rSt, DffObjData& rObjData, voi
                         break;
 
                         default :
+                        {
+                            if ( nTextFlags == PPT_TEXTOBJ_FLAGS_PARA_ALIGNMENT_USED_LEFT )
+                                eTHA = SDRTEXTHORZADJUST_LEFT;
+                            else if ( nTextFlags == PPT_TEXTOBJ_FLAGS_PARA_ALIGNMENT_USED_RIGHT )
+                                eTHA = SDRTEXTHORZADJUST_RIGHT;
+                        }
                         break;
                     }
                     nMinFrameHeight = rTextRect.GetHeight() - ( nTextTop + nTextBottom );
commit 1b6049cde6cc7e59c3621fdcfdec368315496017
Author: Jianyuan Li <lijiany at apache.org>
Date:   Mon Sep 10 07:19:17 2012 +0000

    #119491# fix Handout view mode issue
    
    Reported by: Du Jing
    Patch by: Jianyuan Li
    Review by: sunying

diff --git a/sd/source/filter/ppt/pptin.cxx b/sd/source/filter/ppt/pptin.cxx
index 5764f3e..308979d 100644
--- a/sd/source/filter/ppt/pptin.cxx
+++ b/sd/source/filter/ppt/pptin.cxx
@@ -558,6 +558,10 @@ sal_Bool ImplSdPPTImport::Import()
                 sal_Bool bStarDrawFiller = (*GetPageList( eAktPageKind ) )[ nAktPageNum ]->bStarDrawFiller;
 
                 PageKind ePgKind = ( bNotesMaster ) ? PK_NOTES : PK_STANDARD;
+                sal_Bool bHandout = (*GetPageList( eAktPageKind ) )[ nAktPageNum ]->bHandoutMaster;
+                if ( bHandout )
+                    ePgKind = PK_HANDOUT;
+
                 pPage->SetPageKind( ePgKind );
                 pSdrModel->InsertMasterPage( (SdrPage*)pPage );
                 if ( bNotesMaster && bStarDrawFiller )
@@ -698,7 +702,7 @@ sal_Bool ImplSdPPTImport::Import()
     }
     SdPage* pMPage;
     sal_uInt16 i;
-    for ( i = 1; i < mpDoc->GetMasterPageCount() && ( (pMPage = (SdPage*)mpDoc->GetMasterPage( i )) != 0 ); i++ )
+    for ( i = 0; i < mpDoc->GetMasterPageCount() && ( (pMPage = (SdPage*)mpDoc->GetMasterPage( i )) != 0 ); i++ )
     {
         SetPageNum( i, PPT_MASTERPAGE );
         /////////////////////////////////////////////
@@ -2277,7 +2281,7 @@ SdrObject* ImplSdPPTImport::ApplyTextObj( PPTTextObj* pTextObj, SdrTextObj* pObj
                 if ( aPresentationText.Len() )
                     pPage->SetObjText( (SdrTextObj*)pText, pOutl, ePresKind, aPresentationText );
 
-                if ( pPage->GetPageKind() != PK_NOTES )
+                if ( pPage->GetPageKind() != PK_NOTES && pPage->GetPageKind() != PK_HANDOUT)
                 {
                     SfxStyleSheet* pSheet2( pPage->GetStyleSheetForPresObj( ePresKind ) );
                     if ( pSheet2 )
commit 55011ce4784c0a116753ac725f88bd4327010a2e
Author: Armin Le Grand <alg at apache.org>
Date:   Fri Sep 14 00:51:46 2012 +0000

    #120848# Added correct text content frame for NotchedRightArrow Autoshape
    
    Patch by: JianYuan Li
    Review by: alg

diff --git a/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx b/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
index 4f069a2..06d0081 100644
--- a/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
+++ b/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
@@ -1523,11 +1523,12 @@ static const SvxMSDffCalculationData mso_sptNotchedRightArrowCalc[] =
     { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },
     { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
     { 0x8000, { 10800, 0, DFF_Prop_adjust2Value } },
-    { 0x6001, { 0x403, 0x404, 10800 } }
+    { 0x6001, { 0x403, 0x404, 10800 } },
+    { 0x8000, { 21600, 0, 0x405 }}
 };
 static const SvxMSDffTextRectangles mso_sptNotchedRightArrowTextRect[] =    // todo
 {
-    { { 0, 0 }, { 21600, 21600 } }
+    { { 5 MSO_I, 1 MSO_I }, { 6 MSO_I, 2 MSO_I } }
 };
 static const SvxMSDffHandle mso_sptNotchedRightArrowHandle[] =
 {
commit f13cff6d71d237068c6af92eda271e5fc144be5a
Author: Lei De Bin <leidb at apache.org>
Date:   Thu Jul 19 01:16:30 2012 +0000

    #119609# Fixed alphabetical and roman numberals became ditial numbering
    
    Reported by: Yan Ji
    Patch by: Chen Zuo Jun
    Review by: Lei De Bin

diff --git a/sw/source/filter/ww8/ww8par5.cxx b/sw/source/filter/ww8/ww8par5.cxx
index 97a6641..2b93161 100644
--- a/sw/source/filter/ww8/ww8par5.cxx
+++ b/sw/source/filter/ww8/ww8par5.cxx
@@ -1542,7 +1542,7 @@ eF_ResT SwWW8ImplReader::Read_F_Seq( WW8FieldDesc*, String& rStr )
 
         case '*':
             nRet = aReadParam.SkipToNextToken();
-            if( -2 == nRet )
+            if( -2 == nRet && !( aReadParam.GetResult().EqualsAscii("MERGEFORMAT") || aReadParam.GetResult().EqualsAscii("CHARFORMAT") ))
                 eNumFormat = GetNumTypeFromName( aReadParam.GetResult() );
             break;
 
commit 4313d73f1436f87d937ba10ee05b32bd363b125e
Author: Andre Fischer <af at apache.org>
Date:   Wed Aug 29 12:59:38 2012 +0000

    #i120684# Fixed export of red color-channel.
    
    Patch by: Wang Zhe
    Review by: Andre Fischer

diff --git a/sd/source/filter/eppt/pptexanimations.cxx b/sd/source/filter/eppt/pptexanimations.cxx
index 8345a12..bac80c9 100644
--- a/sd/source/filter/eppt/pptexanimations.cxx
+++ b/sd/source/filter/eppt/pptexanimations.cxx
@@ -2053,7 +2053,7 @@ sal_Bool AnimationExporter::getColorAny( const Any& rAny, const sal_Int16 nColor
     Sequence< double > aHSL( 3 );
     if ( rAny >>= nColor )      // RGB color
     {
-        rA = (sal_uInt8)( nColor >> 24 );
+        rA = (sal_uInt8)( nColor >> 16 );
         rB = (sal_uInt8)( nColor >> 8 );
         rC = (sal_uInt8)( nColor );
     }


More information about the Libreoffice-commits mailing list