Author: alg
Date: Wed Mar 20 14:06:22 2013
New Revision: 1458836

URL: http://svn.apache.org/r1458836
Log:
i121788 In SvxFillToolBoxControl always correct selected FillStyle list entry 
when fill value changes

Modified:
    openoffice/branches/sidebar/main/svx/source/tbxctrls/fillctrl.cxx

Modified: openoffice/branches/sidebar/main/svx/source/tbxctrls/fillctrl.cxx
URL: 
http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/svx/source/tbxctrls/fillctrl.cxx?rev=1458836&r1=1458835&r2=1458836&view=diff
==============================================================================
--- openoffice/branches/sidebar/main/svx/source/tbxctrls/fillctrl.cxx (original)
+++ openoffice/branches/sidebar/main/svx/source/tbxctrls/fillctrl.cxx Wed Mar 
20 14:06:22 2013
@@ -129,14 +129,6 @@ void SvxFillToolBoxControl::StateChanged
                                delete pStyleItem;
                                pStyleItem = (XFillStyleItem*) pState->Clone();
                                pFillTypeLB->Enable();
-
-                               eLastXFS = pFillTypeLB->GetSelectEntryPos();
-                               bUpdate = sal_True;
-
-                               XFillStyle eXFS = 
(XFillStyle)pStyleItem->GetValue();
-                               pFillTypeLB->SelectEntryPos(
-                    sal::static_int_cast< sal_uInt16 >( eXFS ) );
-                               pFillAttrLB->Enable();
                        }
                        else if( pStyleItem )
                        {
@@ -175,7 +167,28 @@ void SvxFillToolBoxControl::StateChanged
                                                bEnableControls = sal_True;
                                }
                        }
-                       if( bEnableControls )
+
+            if( pStyleItem )
+            {
+                // ensure that the correct entry is selected in pFillTypeLB. It
+                // might have been changed by nSID == SID_ATTR_FILL_STYLE, but
+                // it might also be in an in-between state when user had 
started to
+                // change fillstyle, but not yet changed fillvalue for new 
style
+                // and when nSID == SID_ATTR_FILL_COLOR/SID_ATTR_FILL_GRADIENT/
+                // SID_ATTR_FILL_HATCH/SID_ATTR_FILL_BITMAP value change is 
triggered
+                eLastXFS = pFillTypeLB->GetSelectEntryPos();
+                XFillStyle eXFS = (XFillStyle)pStyleItem->GetValue();
+
+                if(eLastXFS != eXFS)
+                {
+                    bUpdate = sal_True;
+                    pFillTypeLB->SelectEntryPos( sal::static_int_cast< 
sal_uInt16 >( eXFS ) );
+                }
+
+                pFillAttrLB->Enable();
+            }
+
+            if( bEnableControls )
                        {
                                //pFillTypeLB->Enable();
                                pFillAttrLB->Enable();


Reply via email to