[ooo-build-commit] .: patches/dev300

Thorsten Behrens thorsten at kemper.freedesktop.org
Fri Feb 26 14:03:42 PST 2010


 patches/dev300/toolbar-decorations-fix.diff |  217 +++++++++++++++++-----------
 1 file changed, 135 insertions(+), 82 deletions(-)

New commits:
commit 1658bd32708f3087dfa9700b829e460e10031745
Author: Thorsten Behrens <tbehrens at novell.com>
Date:   Fri Feb 26 23:01:39 2010 +0100

    Fix nasty crash with new toolbar decorations
    
    * patches/dev300/toolbar-decorations-fix.diff: make sure floating
      window gets deleted after closing popup, otherwise transient
      frame window ptrs will hang around in the vcl lists and later
      crash when re-parenting other windows.

diff --git a/patches/dev300/toolbar-decorations-fix.diff b/patches/dev300/toolbar-decorations-fix.diff
index c0bb401..f11c59e 100644
--- a/patches/dev300/toolbar-decorations-fix.diff
+++ b/patches/dev300/toolbar-decorations-fix.diff
@@ -1,3 +1,26 @@
+Use HIG-appropriate dropdown toolbar decorations
+
+From: cbosdonnat at novell.com
+
+
+---
+
+ svtools/source/control/valueset.cxx       |    2 
+ svx/inc/extrusioncontrols.hxx             |   59 +--
+ svx/inc/fontworkgallery.hxx               |   22 -
+ svx/inc/linectrl.hxx                      |    7 
+ svx/source/tbxctrls/colorwindow.hxx       |    1 
+ svx/source/tbxctrls/extrusioncontrols.cxx |  591 +++++++++++++++++------------
+ svx/source/tbxctrls/extrusioncontrols.src |   32 --
+ svx/source/tbxctrls/fontworkgallery.cxx   |  163 ++++----
+ svx/source/tbxctrls/fontworkgallery.src   |   16 -
+ svx/source/tbxctrls/linectrl.cxx          |  138 ++-----
+ svx/source/tbxctrls/tbcontrl.cxx          |  107 ++++-
+ vcl/inc/vcl/dockwin.hxx                   |    2 
+ vcl/source/window/dockmgr.cxx             |   34 +-
+ 13 files changed, 600 insertions(+), 574 deletions(-)
+
+
 diff --git svtools/source/control/valueset.cxx svtools/source/control/valueset.cxx
 index 014df3c..b559dbd 100644
 --- svtools/source/control/valueset.cxx
@@ -262,7 +285,7 @@ index 50388d6..9db6499 100644
  
  #if _SOLAR__PRIVATE
 diff --git svx/source/tbxctrls/extrusioncontrols.cxx svx/source/tbxctrls/extrusioncontrols.cxx
-index 01f6824..4a0f77e 100644
+index a65f5a1..2d58996 100644
 --- svx/source/tbxctrls/extrusioncontrols.cxx
 +++ svx/source/tbxctrls/extrusioncontrols.cxx
 @@ -88,8 +88,7 @@ ExtrusionDirectionWindow::ExtrusionDirectionWindow(
@@ -444,7 +467,7 @@ index 01f6824..4a0f77e 100644
  }
  
  // -----------------------------------------------------------------------
-@@ -276,10 +317,8 @@ void ExtrusionDirectionWindow::StateChanged( USHORT nSID, SfxItemState eState, c
+@@ -276,10 +317,11 @@ void ExtrusionDirectionWindow::StateChanged( USHORT nSID, SfxItemState eState, c
  
  IMPL_LINK( ExtrusionDirectionWindow, SelectHdl, void *, pControl )
  {
@@ -453,11 +476,14 @@ index 01f6824..4a0f77e 100644
 -
 -//	SfxDispatcher* pDisp = GetBindings().GetDispatcher();
 +    if ( GetDockingManager()->IsInPopupMode( this ) )
++    {
 +        GetDockingManager()->EndPopupMode( this );
++        doLazyDelete();
++    }
  
      if( pControl == mpDirectionSet )
      {
-@@ -299,12 +338,15 @@ IMPL_LINK( ExtrusionDirectionWindow, SelectHdl, void *, pControl )
+@@ -299,12 +341,15 @@ IMPL_LINK( ExtrusionDirectionWindow, SelectHdl, void *, pControl )
                                       mxFrame->getController(), UNO_QUERY ), 
                                       aCommand, 
                                       aArgs );
@@ -476,7 +502,7 @@ index 01f6824..4a0f77e 100644
          if( (nProjection >= 0) && (nProjection < 2 ) )
          {
              SfxInt32Item    aItem( SID_EXTRUSION_PROJECTION, nProjection );
-@@ -350,17 +392,6 @@ BOOL ExtrusionDirectionWindow::Close()
+@@ -350,17 +395,6 @@ BOOL ExtrusionDirectionWindow::Close()
  
  // -----------------------------------------------------------------------
  
@@ -494,7 +520,7 @@ index 01f6824..4a0f77e 100644
  void ExtrusionDirectionWindow::GetFocus (void)
  {
      SfxPopupWindow::GetFocus();
-@@ -401,9 +432,10 @@ SfxPopupWindowType ExtrusionDirectionControl::GetPopupWindowType() const
+@@ -401,9 +435,10 @@ SfxPopupWindowType ExtrusionDirectionControl::GetPopupWindowType() const
  SfxPopupWindow*	ExtrusionDirectionControl::CreatePopupWindow()
  {
      ExtrusionDirectionWindow* pWin = new ExtrusionDirectionWindow( GetId(), m_xFrame, &GetToolBox() );
@@ -507,7 +533,7 @@ index 01f6824..4a0f77e 100644
      return pWin;
  }
  
-@@ -455,20 +487,7 @@ ExtrusionDepthWindow::ExtrusionDepthWindow(
+@@ -455,20 +490,7 @@ ExtrusionDepthWindow::ExtrusionDepthWindow(
      SfxPopupWindow( nId,                     
                      rFrame,
                      SVX_RES( RID_SVXFLOAT_EXTRUSION_DEPTH )),
@@ -528,7 +554,7 @@ index 01f6824..4a0f77e 100644
      mfDepth( -1.0 ),
      mbEnabled( false )
  {
-@@ -482,20 +501,7 @@ ExtrusionDepthWindow::ExtrusionDepthWindow(	USHORT nId,
+@@ -482,20 +504,7 @@ ExtrusionDepthWindow::ExtrusionDepthWindow(	USHORT nId,
                      rFrame,
                      pParentWindow,
                      SVX_RES( RID_SVXFLOAT_EXTRUSION_DEPTH )),
@@ -549,7 +575,7 @@ index 01f6824..4a0f77e 100644
      mfDepth( -1.0 ),
      mbEnabled( false )
  {
-@@ -504,31 +510,58 @@ ExtrusionDepthWindow::ExtrusionDepthWindow(	USHORT nId,
+@@ -504,31 +513,58 @@ ExtrusionDepthWindow::ExtrusionDepthWindow(	USHORT nId,
  
  void ExtrusionDepthWindow::implInit()
  {
@@ -604,24 +630,24 @@ index 01f6824..4a0f77e 100644
 +        mpTxtDepths[i]->SetBackground( GetBackground( ) );
 +        mpTxtDepths[i]->Show( );
 +    }
++
++    mpTxtDepths[5]->SetText( String( SVX_RES( STR_INFINITY ) ) );
  
 -    SetOutputSizePixel( mpMenu->getMenuSize() );
 -    mpMenu->SetOutputSizePixel( GetOutputSizePixel() );
-+    mpTxtDepths[5]->SetText( String( SVX_RES( STR_INFINITY ) ) );
- 
--    mpMenu->Show();
 +    mpBtnCustom = new PushButton( this );
 +    mpBtnCustom->SetPosPixel( Point( 2, 173 ) );
 +    mpBtnCustom->SetSizePixel( Size( 106, 24 ) );
 +    mpBtnCustom->SetText( String( SVX_RES( STR_CUSTOM ) ) );
 +    mpBtnCustom->SetClickHdl( LINK( this, ExtrusionDepthWindow, SelectHdl ) );
 +    mpBtnCustom->Show( );
-+
+ 
+-    mpMenu->Show();
 +    SetOutputSizePixel( Size( 110, 201 ) );
  
      FreeResource();
  
-@@ -547,10 +580,12 @@ SfxPopupWindow* ExtrusionDepthWindow::Clone() const
+@@ -547,10 +583,12 @@ SfxPopupWindow* ExtrusionDepthWindow::Clone() const
  
  ExtrusionDepthWindow::~ExtrusionDepthWindow()
  {
@@ -638,7 +664,7 @@ index 01f6824..4a0f77e 100644
  }
  
  // -----------------------------------------------------------------------
-@@ -562,20 +597,16 @@ void ExtrusionDepthWindow::implSetDepth( double fDepth, bool bEnabled )
+@@ -562,20 +600,16 @@ void ExtrusionDepthWindow::implSetDepth( double fDepth, bool bEnabled )
  {
      mbEnabled = bEnabled;
      mfDepth = fDepth;
@@ -667,7 +693,7 @@ index 01f6824..4a0f77e 100644
          }
      }
  }
-@@ -590,7 +621,7 @@ void ExtrusionDepthWindow::implFillStrings( FieldUnit eUnit )
+@@ -590,7 +624,7 @@ void ExtrusionDepthWindow::implFillStrings( FieldUnit eUnit )
      for( int i = 0; i < 5; i++ )
      {
          String aStr( SVX_RES( nResource + i ) );
@@ -676,7 +702,7 @@ index 01f6824..4a0f77e 100644
      };
  }
  
-@@ -637,29 +668,36 @@ void ExtrusionDepthWindow::DataChanged( const DataChangedEvent& rDCEvt )
+@@ -637,29 +671,39 @@ void ExtrusionDepthWindow::DataChanged( const DataChangedEvent& rDCEvt )
      {
          bool bHighContrast = GetDisplayBackground().GetColor().IsDark();
  
@@ -719,22 +745,28 @@ index 01f6824..4a0f77e 100644
 -            if ( IsInPopupMode() )
 -                EndPopupMode();
 +            if ( GetDockingManager()->IsInPopupMode( this ) )
++            {
 +                GetDockingManager()->EndPopupMode( this );
++                doLazyDelete();
++            }
  
              SvxDoubleItem aDepthItem( mfDepth, SID_EXTRUSION_DEPTH );
              SfxUInt16Item aMetricItem(
-@@ -709,8 +747,8 @@ IMPL_LINK( ExtrusionDepthWindow, SelectHdl, void *, EMPTYARG )
+@@ -709,8 +753,11 @@ IMPL_LINK( ExtrusionDepthWindow, SelectHdl, void *, EMPTYARG )
                                           aArgs );
              implSetDepth( fDepth, true );
  
 -            if ( IsInPopupMode() )
 -                EndPopupMode();
 +            if ( GetDockingManager()->IsInPopupMode( this ) )
++            {
 +                GetDockingManager()->EndPopupMode( this );
++                doLazyDelete();
++            }
          }
      }
      return 0;
-@@ -731,24 +769,16 @@ BOOL ExtrusionDepthWindow::Close()
+@@ -731,24 +778,16 @@ BOOL ExtrusionDepthWindow::Close()
  
  // -----------------------------------------------------------------------
  
@@ -762,7 +794,7 @@ index 01f6824..4a0f77e 100644
  }
  
  // ========================================================================
-@@ -778,9 +808,10 @@ SfxPopupWindowType ExtrusionDepthControl::GetPopupWindowType() const
+@@ -778,9 +817,10 @@ SfxPopupWindowType ExtrusionDepthControl::GetPopupWindowType() const
  SfxPopupWindow*	ExtrusionDepthControl::CreatePopupWindow()
  {
      ExtrusionDepthWindow* pWin = new ExtrusionDepthWindow( GetId(), m_xFrame, &GetToolBox() );
@@ -775,7 +807,7 @@ index 01f6824..4a0f77e 100644
      return pWin;
  }
  
-@@ -812,7 +843,6 @@ ExtrusionLightingWindow::ExtrusionLightingWindow(
+@@ -812,7 +852,6 @@ ExtrusionLightingWindow::ExtrusionLightingWindow(
      maImgNormalh( SVX_RES( IMG_LIGHTING_NORMAL_H ) ),
      maImgDimh( SVX_RES( IMG_LIGHTING_DIM_H ) ),
      mxFrame( rFrame ),
@@ -783,7 +815,7 @@ index 01f6824..4a0f77e 100644
      mnLevel( 0 ),
      mbLevelEnabled( false ),
      mnDirection( FROM_FRONT ),
-@@ -838,7 +868,6 @@ ExtrusionLightingWindow::ExtrusionLightingWindow(
+@@ -838,7 +877,6 @@ ExtrusionLightingWindow::ExtrusionLightingWindow(
      maImgNormalh( SVX_RES( IMG_LIGHTING_NORMAL_H ) ),
      maImgDimh( SVX_RES( IMG_LIGHTING_DIM_H ) ),
      mxFrame( rFrame ),
@@ -791,7 +823,7 @@ index 01f6824..4a0f77e 100644
      mnLevel( 0 ),
      mbLevelEnabled( false ),
      mnDirection( FROM_FRONT ),
-@@ -851,7 +880,23 @@ ExtrusionLightingWindow::ExtrusionLightingWindow(
+@@ -851,7 +889,23 @@ ExtrusionLightingWindow::ExtrusionLightingWindow(
  
  void ExtrusionLightingWindow::implInit()
  {
@@ -815,7 +847,7 @@ index 01f6824..4a0f77e 100644
  
      USHORT i;
      for( i = FROM_TOP_LEFT; i <= FROM_BOTTOM_RIGHT; i++ )
-@@ -867,20 +912,14 @@ void ExtrusionLightingWindow::implInit()
+@@ -867,20 +921,14 @@ void ExtrusionLightingWindow::implInit()
          maImgLightingPreviewh[i] = Image( SVX_RES( IMG_LIGHT_PREVIEW_H + i ) );
      }
  
@@ -838,7 +870,7 @@ index 01f6824..4a0f77e 100644
  
      bool bHighContrast = GetDisplayBackground().GetColor().IsDark();
  
-@@ -896,17 +935,60 @@ void ExtrusionLightingWindow::implInit()
+@@ -896,17 +944,60 @@ void ExtrusionLightingWindow::implInit()
          }
      }
      mpLightingSet->SetOutputSizePixel( Size( 72, 72 ) );
@@ -910,7 +942,7 @@ index 01f6824..4a0f77e 100644
  
      FreeResource();
  
-@@ -925,7 +1007,14 @@ SfxPopupWindow* ExtrusionLightingWindow::Clone() const
+@@ -925,7 +1016,14 @@ SfxPopupWindow* ExtrusionLightingWindow::Clone() const
  
  ExtrusionLightingWindow::~ExtrusionLightingWindow()
  {
@@ -926,7 +958,7 @@ index 01f6824..4a0f77e 100644
  }
  
  // -----------------------------------------------------------------------
-@@ -934,11 +1023,11 @@ void ExtrusionLightingWindow::implSetIntensity( int nLevel, bool bEnabled )
+@@ -934,11 +1032,11 @@ void ExtrusionLightingWindow::implSetIntensity( int nLevel, bool bEnabled )
  {
      mnLevel = nLevel;
      mbLevelEnabled = bEnabled;
@@ -940,7 +972,7 @@ index 01f6824..4a0f77e 100644
      }
  }
  
-@@ -973,8 +1062,6 @@ void ExtrusionLightingWindow::implSetDirection( int nDirection, bool bEnabled )
+@@ -973,8 +1071,6 @@ void ExtrusionLightingWindow::implSetDirection( int nDirection, bool bEnabled )
              }
          }
      }
@@ -949,7 +981,7 @@ index 01f6824..4a0f77e 100644
  }
  
  // -----------------------------------------------------------------------
-@@ -1025,9 +1112,9 @@ void ExtrusionLightingWindow::DataChanged( const DataChangedEvent& rDCEvt )
+@@ -1025,9 +1121,9 @@ void ExtrusionLightingWindow::DataChanged( const DataChangedEvent& rDCEvt )
          bool bHighContrast = GetDisplayBackground().GetColor().IsDark();
  
          implSetDirection( mnDirection, mbDirectionEnabled );
@@ -962,7 +994,7 @@ index 01f6824..4a0f77e 100644
      }
  }
  
-@@ -1035,14 +1122,21 @@ void ExtrusionLightingWindow::DataChanged( const DataChangedEvent& rDCEvt )
+@@ -1035,14 +1131,21 @@ void ExtrusionLightingWindow::DataChanged( const DataChangedEvent& rDCEvt )
  
  IMPL_LINK( ExtrusionLightingWindow, SelectHdl, void *, pControl )
  {
@@ -988,7 +1020,7 @@ index 01f6824..4a0f77e 100644
          if( nLevel >= 0 )
          {
              if( nLevel != 3 )
-@@ -1114,24 +1208,16 @@ BOOL ExtrusionLightingWindow::Close()
+@@ -1114,24 +1217,16 @@ BOOL ExtrusionLightingWindow::Close()
  
  // -----------------------------------------------------------------------
  
@@ -1016,7 +1048,7 @@ index 01f6824..4a0f77e 100644
  }
  
  // ========================================================================
-@@ -1160,9 +1246,9 @@ SfxPopupWindowType ExtrusionLightingControl::GetPopupWindowType() const
+@@ -1160,9 +1255,9 @@ SfxPopupWindowType ExtrusionLightingControl::GetPopupWindowType() const
  SfxPopupWindow*	ExtrusionLightingControl::CreatePopupWindow()
  {
      ExtrusionLightingWindow* pWin = new ExtrusionLightingWindow( GetId(), m_xFrame, &GetToolBox() );
@@ -1028,7 +1060,7 @@ index 01f6824..4a0f77e 100644
      return pWin;
  }
  
-@@ -1188,16 +1274,7 @@ ExtrusionSurfaceWindow::ExtrusionSurfaceWindow(
+@@ -1188,16 +1283,7 @@ ExtrusionSurfaceWindow::ExtrusionSurfaceWindow(
      SfxPopupWindow( nId, 
                      rFrame,
                      SVX_RES( RID_SVXFLOAT_EXTRUSION_SURFACE )),
@@ -1046,7 +1078,7 @@ index 01f6824..4a0f77e 100644
  {
      implInit();
  }
-@@ -1211,16 +1288,7 @@ ExtrusionSurfaceWindow::ExtrusionSurfaceWindow(
+@@ -1211,16 +1297,7 @@ ExtrusionSurfaceWindow::ExtrusionSurfaceWindow(
                      rFrame,
                      pParentWindow,
                      SVX_RES( RID_SVXFLOAT_EXTRUSION_SURFACE )),
@@ -1064,7 +1096,7 @@ index 01f6824..4a0f77e 100644
  {
      implInit();
  }
-@@ -1229,25 +1297,48 @@ ExtrusionSurfaceWindow::ExtrusionSurfaceWindow(
+@@ -1229,25 +1306,48 @@ ExtrusionSurfaceWindow::ExtrusionSurfaceWindow(
  
  void ExtrusionSurfaceWindow::implInit()
  {
@@ -1125,7 +1157,7 @@ index 01f6824..4a0f77e 100644
  
      FreeResource();
  
-@@ -1266,22 +1357,22 @@ SfxPopupWindow* ExtrusionSurfaceWindow::Clone() const
+@@ -1266,22 +1366,22 @@ SfxPopupWindow* ExtrusionSurfaceWindow::Clone() const
  
  ExtrusionSurfaceWindow::~ExtrusionSurfaceWindow()
  {
@@ -1157,7 +1189,7 @@ index 01f6824..4a0f77e 100644
      }
  }
  
-@@ -1318,23 +1409,34 @@ void ExtrusionSurfaceWindow::DataChanged( const DataChangedEvent& rDCEvt )
+@@ -1318,23 +1418,37 @@ void ExtrusionSurfaceWindow::DataChanged( const DataChangedEvent& rDCEvt )
      {
          bool bHighContrast = GetDisplayBackground().GetColor().IsDark();
  
@@ -1183,7 +1215,10 @@ index 01f6824..4a0f77e 100644
 -    if ( IsInPopupMode() )
 -        EndPopupMode();
 +    if ( GetDockingManager()->IsInPopupMode( this ) )
++    {
 +        GetDockingManager()->EndPopupMode( this );
++        doLazyDelete();
++    }
  
  //	SfxDispatcher* pDisp = GetBindings().GetDispatcher();
  
@@ -1200,7 +1235,7 @@ index 01f6824..4a0f77e 100644
      if( nSurface >= 0 )
      {
          SfxInt32Item    aItem( SID_EXTRUSION_SURFACE, nSurface );
-@@ -1374,24 +1476,16 @@ BOOL ExtrusionSurfaceWindow::Close()
+@@ -1374,24 +1488,16 @@ BOOL ExtrusionSurfaceWindow::Close()
  
  // -----------------------------------------------------------------------
  
@@ -1228,7 +1263,7 @@ index 01f6824..4a0f77e 100644
  }
  
  // ========================================================================
-@@ -1421,9 +1515,10 @@ SfxPopupWindowType ExtrusionSurfaceControl::GetPopupWindowType() const
+@@ -1421,9 +1527,10 @@ SfxPopupWindowType ExtrusionSurfaceControl::GetPopupWindowType() const
  SfxPopupWindow*	ExtrusionSurfaceControl::CreatePopupWindow()
  {
      ExtrusionSurfaceWindow* pWin = new ExtrusionSurfaceWindow( GetId(), m_xFrame, &GetToolBox() );
@@ -1306,7 +1341,7 @@ index 3e391de..cd56231 100644
      
      String STR_WIREFRAME
 diff --git svx/source/tbxctrls/fontworkgallery.cxx svx/source/tbxctrls/fontworkgallery.cxx
-index 7cb7799..c065851 100644
+index 7cb7799..b9ea642 100644
 --- svx/source/tbxctrls/fontworkgallery.cxx
 +++ svx/source/tbxctrls/fontworkgallery.cxx
 @@ -351,18 +351,7 @@ FontWorkAlignmentWindow::FontWorkAlignmentWindow(
@@ -1434,7 +1469,7 @@ index 7cb7799..c065851 100644
      }
  }
  
-@@ -479,24 +477,34 @@ void FontWorkAlignmentWindow::DataChanged( const DataChangedEvent& rDCEvt )
+@@ -479,24 +477,37 @@ void FontWorkAlignmentWindow::DataChanged( const DataChangedEvent& rDCEvt )
      {
          bool bHighContrast = GetDisplayBackground().GetColor().IsDark();
  
@@ -1461,7 +1496,10 @@ index 7cb7799..c065851 100644
 -    if ( IsInPopupMode() )
 -        EndPopupMode();
 +    if ( GetDockingManager()->IsInPopupMode( this ) )
++    {
 +        GetDockingManager()->EndPopupMode( this );
++        doLazyDelete();
++    }
  
  //	SfxDispatcher* pDisp = GetBindings().GetDispatcher();
  
@@ -1478,7 +1516,7 @@ index 7cb7799..c065851 100644
      if( nAlignment >= 0 )
      {
          SfxInt32Item    aItem( SID_FONTWORK_ALIGNMENT, nAlignment );
-@@ -535,24 +543,16 @@ BOOL FontWorkAlignmentWindow::Close()
+@@ -535,24 +546,16 @@ BOOL FontWorkAlignmentWindow::Close()
  
  // -----------------------------------------------------------------------
  
@@ -1506,7 +1544,7 @@ index 7cb7799..c065851 100644
  }
  
  // ========================================================================
-@@ -582,9 +582,9 @@ SfxPopupWindowType FontWorkAlignmentControl::GetPopupWindowType() const
+@@ -582,9 +585,9 @@ SfxPopupWindowType FontWorkAlignmentControl::GetPopupWindowType() const
  SfxPopupWindow*	FontWorkAlignmentControl::CreatePopupWindow()
  {
      FontWorkAlignmentWindow* pWin = new FontWorkAlignmentWindow( GetId(), m_xFrame, &GetToolBox() );
@@ -1518,7 +1556,7 @@ index 7cb7799..c065851 100644
      return pWin;
  }
  
-@@ -610,8 +610,7 @@ FontWorkCharacterSpacingWindow::FontWorkCharacterSpacingWindow(
+@@ -610,8 +613,7 @@ FontWorkCharacterSpacingWindow::FontWorkCharacterSpacingWindow(
      SfxPopupWindow( nId, 
                      rFrame,
                      SVX_RES( RID_SVXFLOAT_FONTWORK_CHARSPACING )),
@@ -1528,7 +1566,7 @@ index 7cb7799..c065851 100644
  {
      SetHelpId( HID_WIN_FONTWORK_CHARSPACE );
      implInit();
-@@ -626,8 +625,7 @@ FontWorkCharacterSpacingWindow::FontWorkCharacterSpacingWindow(
+@@ -626,8 +628,7 @@ FontWorkCharacterSpacingWindow::FontWorkCharacterSpacingWindow(
                      rFrame,
                      pParentWindow,
                      SVX_RES( RID_SVXFLOAT_FONTWORK_CHARSPACING )),
@@ -1538,18 +1576,21 @@ index 7cb7799..c065851 100644
  {
      SetHelpId( HID_WIN_FONTWORK_CHARSPACE );
      implInit();
-@@ -771,8 +769,8 @@ void FontWorkCharacterSpacingWindow::DataChanged( const DataChangedEvent& rDCEvt
+@@ -771,8 +772,11 @@ void FontWorkCharacterSpacingWindow::DataChanged( const DataChangedEvent& rDCEvt
  
  IMPL_LINK( FontWorkCharacterSpacingWindow, SelectHdl, void *, EMPTYARG )
  {
 -    if ( IsInPopupMode() )
 -        EndPopupMode();
 +    if ( GetDockingManager()->IsInPopupMode( this ) )
++    {
 +        GetDockingManager()->EndPopupMode( this );
++        doLazyDelete();
++    }
  
      sal_Int32 nSelection = mpMenu->getSelectedEntryId();
      sal_Int32 nCharacterSpacing;
-@@ -856,17 +854,6 @@ BOOL FontWorkCharacterSpacingWindow::Close()
+@@ -856,17 +860,6 @@ BOOL FontWorkCharacterSpacingWindow::Close()
  
  // -----------------------------------------------------------------------
  
@@ -1567,7 +1608,7 @@ index 7cb7799..c065851 100644
  void FontWorkCharacterSpacingWindow::GetFocus (void)
  {
      SfxPopupWindow::GetFocus();
-@@ -903,9 +890,9 @@ SfxPopupWindowType FontWorkCharacterSpacingControl::GetPopupWindowType() const
+@@ -903,9 +896,9 @@ SfxPopupWindowType FontWorkCharacterSpacingControl::GetPopupWindowType() const
  SfxPopupWindow*	FontWorkCharacterSpacingControl::CreatePopupWindow()
  {
      FontWorkCharacterSpacingWindow* pWin = new FontWorkCharacterSpacingWindow( GetId(), m_xFrame, &GetToolBox() );
@@ -1614,7 +1655,7 @@ index 880bb5d..a6a3fec 100644
      
      String STR_CHARS_SPACING_VERY_TIGHT
 diff --git svx/source/tbxctrls/linectrl.cxx svx/source/tbxctrls/linectrl.cxx
-index dca3dd0..013d0ec 100644
+index dca3dd0..f18d5b5 100644
 --- svx/source/tbxctrls/linectrl.cxx
 +++ svx/source/tbxctrls/linectrl.cxx
 @@ -385,14 +385,13 @@ SvxLineEndWindow::SvxLineEndWindow(
@@ -1684,18 +1725,21 @@ index dca3dd0..013d0ec 100644
  }
  
  SfxPopupWindow* SvxLineEndWindow::Clone() const
-@@ -491,8 +504,8 @@ IMPL_LINK( SvxLineEndWindow, SelectHdl, void *, EMPTYARG )
+@@ -491,8 +504,11 @@ IMPL_LINK( SvxLineEndWindow, SelectHdl, void *, EMPTYARG )
          pLineEndItem	= new XLineEndItem( pEntry->GetName(), pEntry->GetLineEnd() );
      }
  
 -    if ( IsInPopupMode() )
 -        EndPopupMode();
 +    if ( GetDockingManager()->IsInPopupMode( this ) )
++    {
 +        GetDockingManager()->EndPopupMode( this );
++        doLazyDelete();
++    }
  
      Sequence< PropertyValue > aArgs( 1 );
      Any a;
-@@ -577,79 +590,6 @@ void SvxLineEndWindow::FillValueSet()
+@@ -577,79 +593,6 @@ void SvxLineEndWindow::FillValueSet()
  
  // -----------------------------------------------------------------------
  
@@ -1775,7 +1819,7 @@ index dca3dd0..013d0ec 100644
  void SvxLineEndWindow::StartSelection()
  {
      aLineEndSet.StartSelection();
-@@ -677,28 +617,12 @@ void SvxLineEndWindow::StateChanged(
+@@ -677,28 +620,12 @@ void SvxLineEndWindow::StateChanged(
  
              aLineEndSet.Clear();
              FillValueSet();
@@ -1804,7 +1848,7 @@ index dca3dd0..013d0ec 100644
  void SvxLineEndWindow::SetSize()
  {
      //if( !bPopupMode )
-@@ -721,12 +645,12 @@ void SvxLineEndWindow::SetSize()
+@@ -721,12 +648,12 @@ void SvxLineEndWindow::SetSize()
      aSize.Width()  += 6;
      aSize.Height() += 6;
      aSize = aLineEndSet.CalcWindowSizePixel( aSize );
@@ -1821,7 +1865,7 @@ index dca3dd0..013d0ec 100644
  }
  
  void SvxLineEndWindow::GetFocus (void)
-@@ -737,6 +661,11 @@ void SvxLineEndWindow::GetFocus (void)
+@@ -737,6 +664,11 @@ void SvxLineEndWindow::GetFocus (void)
      aLineEndSet.GrabFocus();
  }
  
@@ -1833,7 +1877,7 @@ index dca3dd0..013d0ec 100644
  /*************************************************************************
  |*
  |* SvxLineEndToolBoxControl
-@@ -769,9 +698,9 @@ SfxPopupWindow*	SvxLineEndToolBoxControl::CreatePopupWindow()
+@@ -769,9 +701,9 @@ SfxPopupWindow*	SvxLineEndToolBoxControl::CreatePopupWindow()
  {
      SvxLineEndWindow* pLineEndWin =
          new SvxLineEndWindow( GetId(), m_xFrame, &GetToolBox(), SVX_RESSTR( RID_SVXSTR_LINEEND ) );
@@ -1846,7 +1890,7 @@ index dca3dd0..013d0ec 100644
  }
  
 diff --git svx/source/tbxctrls/tbcontrl.cxx svx/source/tbxctrls/tbcontrl.cxx
-index 94494aa..1eab739 100644
+index feddd99..0ae54c2 100644
 --- svx/source/tbxctrls/tbcontrl.cxx
 +++ svx/source/tbxctrls/tbcontrl.cxx
 @@ -253,6 +253,7 @@ class SvxFrameWindow_Impl : public SfxPopupWindow
@@ -1881,7 +1925,7 @@ index 94494aa..1eab739 100644
      virtual Window*	GetPreferredKeyInputWindow();
      virtual void	GetFocus();
      virtual void    DataChanged( const DataChangedEvent& rDCEvt );
-@@ -832,6 +836,7 @@ SvxColorWindow_Impl::SvxColorWindow_Impl( const OUString&            rCommand,
+@@ -836,6 +840,7 @@ SvxColorWindow_Impl::SvxColorWindow_Impl( const OUString&            rCommand,
  
      theSlotId( nSlotId ),
      aColorSet( this, WinBits( WB_ITEMBORDER | WB_NAMEFIELD | WB_3DLOOK | WB_NO_DIRECTSELECT) ),
@@ -1923,18 +1967,21 @@ index 94494aa..1eab739 100644
  
      AddStatusListener( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:ColorTableState" )));
      if ( bKillTable )
-@@ -945,8 +967,8 @@ IMPL_LINK( SvxColorWindow_Impl, SelectHdl, void *, EMPTYARG )
+@@ -948,8 +967,11 @@ IMPL_LINK( SvxColorWindow_Impl, SelectHdl, void *, EMPTYARG )
          while in Dispatch()), accessing members will crash in this case. */
      aColorSet.SetNoSelection();
  
 -    if ( IsInPopupMode() )
 -        EndPopupMode();
 +    if ( GetDockingManager()->IsInPopupMode( this ) )
++    {
 +        GetDockingManager()->EndPopupMode( this );
++        doLazyDelete();
++    }
  
      if ( !nItemId && ( SID_ATTR_CHAR_COLOR_BACKGROUND == theSlotId  || SID_BACKGROUND_COLOR == theSlotId ) )
      {
-@@ -1058,13 +1080,16 @@ void SvxColorWindow_Impl::StateChanged( USHORT nSID, SfxItemState eState, const
+@@ -1062,6 +1084,7 @@ void SvxColorWindow_Impl::StateChanged( USHORT nSID, SfxItemState eState, const
  SvxFrameWindow_Impl::SvxFrameWindow_Impl( USHORT nId, const Reference< XFrame >& rFrame, Window* pParentWindow ) :
  
      SfxPopupWindow( nId, rFrame, pParentWindow, WinBits( WB_DIALOGCONTROL | WB_SYSTEMWINDOW ) ),
@@ -1942,16 +1989,16 @@ index 94494aa..1eab739 100644
      aFrameSet   ( this, WinBits( WB_ITEMBORDER | WB_DOUBLEBORDER | WB_3DLOOK | WB_NO_DIRECTSELECT ) ),
      bParagraphMode(sal_False)
  
- {
+@@ -1069,6 +1092,8 @@ SvxFrameWindow_Impl::SvxFrameWindow_Impl( USHORT nId, const Reference< XFrame >&
      WinBits nBits = GetStyle();
      SetStyle( nBits & ~WB_MOVEABLE );
-     
+ 
 +    SetControlBackground( GetSettings().GetStyleSettings().GetFaceColor( ) );
 +    
      BindListener();
      String sCommand(String::CreateFromAscii( ".uno:BorderReducedMode" ));
      AddStatusListener( sCommand );
-@@ -1092,10 +1120,22 @@ SvxFrameWindow_Impl::SvxFrameWindow_Impl( USHORT nId, const Reference< XFrame >&
+@@ -1098,10 +1123,22 @@ SvxFrameWindow_Impl::SvxFrameWindow_Impl( USHORT nId, const Reference< XFrame >&
      aFrameSet.SetSelectHdl( LINK( this, SvxFrameWindow_Impl, SelectHdl ) );
  
      lcl_CalcSizeValueSet( *this, aFrameSet,Size( 20, 20 ));
@@ -1974,7 +2021,7 @@ index 94494aa..1eab739 100644
  }
  /*-- 22.09.2004 12:27:50---------------------------------------------------
  
-@@ -1111,6 +1151,11 @@ SfxPopupWindow* SvxFrameWindow_Impl::Clone() const
+@@ -1117,6 +1154,11 @@ SfxPopupWindow* SvxFrameWindow_Impl::Clone() const
      return new SvxFrameWindow_Impl( GetId(), GetFrame(), GetParent() );
  }
  
@@ -1986,18 +2033,21 @@ index 94494aa..1eab739 100644
  Window* SvxFrameWindow_Impl::GetPreferredKeyInputWindow()
  {
      return &aFrameSet;
-@@ -1239,8 +1284,8 @@ IMPL_LINK( SvxFrameWindow_Impl, SelectHdl, void *, EMPTYARG )
+@@ -1245,8 +1287,11 @@ IMPL_LINK( SvxFrameWindow_Impl, SelectHdl, void *, EMPTYARG )
      aBorderInner.SetValid( VALID_DISTANCE, TRUE );
      aBorderInner.SetValid( VALID_DISABLE, FALSE );
  
 -    if ( IsInPopupMode() )
 -        EndPopupMode();
 +    if ( GetDockingManager()->IsInPopupMode( this ) )
++    {
 +        GetDockingManager()->EndPopupMode( this );
++        doLazyDelete();
++    }
  
      Any a;
      Sequence< PropertyValue > aArgs( 2 );
-@@ -1332,7 +1377,8 @@ BOOL SvxFrameWindow_Impl::Close()
+@@ -1340,7 +1385,8 @@ SvxLineWindow_Impl::SvxLineWindow_Impl( USHORT nId, const Reference< XFrame >& r
  
      SfxPopupWindow( nId, rFrame, pParentWindow, WinBits( WB_DIALOGCONTROL | WB_SYSTEMWINDOW ) ),
  
@@ -2007,20 +2057,20 @@ index 94494aa..1eab739 100644
  {
      WinBits nBits = GetStyle();
      SetStyle( nBits & ~WB_MOVEABLE );
-@@ -1344,12 +1353,6 @@ SvxLineWindow_Impl::SvxLineWindow_Impl( USHORT nId, const Reference< XFrame >& r
-     catch(const uno::Exception& )
+@@ -1354,12 +1400,6 @@ SvxLineWindow_Impl::SvxLineWindow_Impl( USHORT nId, const Reference< XFrame >& r
      {
      }
--
+ 
 -    FixedText aLabel( this, WinBits( WB_NOMULTILINE ) );
 -    aLabel.SetText( SVX_RESSTR( RID_SVXSTR_FRAME_STYLE ) );
 -    Size aTxtSize( 100, 15 );
 -    aLabel.SetSizePixel( aTxtSize );
 -    aLabel.SetPosPixel( Point( 3, 3 ) );
- 
+-
      Size	aBmpSize( 55, 12 );
      CreateBitmaps();
-@@ -1352,10 +1404,22 @@ SvxLineWindow_Impl::SvxLineWindow_Impl( USHORT nId, const Reference< XFrame >& r
+ 
+@@ -1368,10 +1408,22 @@ SvxLineWindow_Impl::SvxLineWindow_Impl( USHORT nId, const Reference< XFrame >& r
      aLineSet.SetText( SVX_RESSTR(STR_NONE) );
  
      lcl_CalcSizeValueSet( *this, aLineSet, aBmpSize );
@@ -2043,18 +2093,21 @@ index 94494aa..1eab739 100644
  }
  
  SfxPopupWindow* SvxLineWindow_Impl::Clone() const
-@@ -1601,8 +1665,8 @@ IMPL_LINK( SvxLineWindow_Impl, SelectHdl, void *, EMPTYARG )
+@@ -1617,8 +1669,11 @@ IMPL_LINK( SvxLineWindow_Impl, SelectHdl, void *, EMPTYARG )
      else
          aLineItem.SetLine( 0 );
  
 -    if ( IsInPopupMode() )
 -        EndPopupMode();
 +    if ( GetDockingManager()->IsInPopupMode( this ) )
++    {
 +        GetDockingManager()->EndPopupMode( this );
++        doLazyDelete();
++    }
  
      Any a;
      Sequence< PropertyValue > aArgs( 1 );
-@@ -1644,6 +1708,13 @@ BOOL SvxLineWindow_Impl::Close()
+@@ -1660,6 +1715,13 @@ BOOL SvxLineWindow_Impl::Close()
  
  // -----------------------------------------------------------------------
  
@@ -2068,9 +2121,9 @@ index 94494aa..1eab739 100644
  Window* SvxLineWindow_Impl::GetPreferredKeyInputWindow()
  {
      return &aLineSet;
-@@ -2351,10 +2422,10 @@ SfxPopupWindow*	SvxFontColorToolBoxControl::CreatePopupWindow()
-                 SVX_RESSTR( RID_SVXITEMS_EXTRAS_CHARCOLOR ),
-                 &GetToolBox() );
+@@ -2439,10 +2501,10 @@ SfxPopupWindow*	SvxColorToolBoxControl::CreatePopupWindow()
+                                     SVX_RESSTR(nResId),
+                                     &GetToolBox() );
  
 -    pColorWin->StartPopupMode( &GetToolBox(),
 -        FLOATWIN_POPUPMODE_GRABFOCUS|FLOATWIN_POPUPMODE_ALLOWTEAROFF );
@@ -2082,7 +2135,7 @@ index 94494aa..1eab739 100644
      return pColorWin;
  }
  
-@@ -2496,7 +2566,7 @@ SfxPopupWindow*	SvxFontColorExtToolBoxControl::CreatePopupWindow()
+@@ -2513,7 +2575,7 @@ SfxPopupWindow*	SvxFontColorExtToolBoxControl::CreatePopupWindow()
                              m_aCommandURL,
                              GetSlotId(),
                              m_xFrame,
@@ -2091,7 +2144,7 @@ index 94494aa..1eab739 100644
                              &GetToolBox() );
  
      if ( GetSlotId() == SID_ATTR_CHAR_COLOR_BACKGROUND )
-@@ -2703,10 +2772,9 @@ SfxPopupWindow*	SvxFrameLineColorToolBoxControl::CreatePopupWindow()
+@@ -2724,10 +2786,9 @@ SfxPopupWindow*	SvxFrameLineColorToolBoxControl::CreatePopupWindow()
                                          SVX_RESSTR(RID_SVXSTR_FRAME_COLOR),
                                          &GetToolBox() );
  
@@ -2104,7 +2157,7 @@ index 94494aa..1eab739 100644
      return pColorWin;
  }
  
-@@ -2822,8 +2890,8 @@ void lcl_ResizeValueSet( Window &rWin, ValueSet &rValueSet )
+@@ -2843,8 +2904,8 @@ void lcl_ResizeValueSet( Window &rWin, ValueSet &rValueSet )
  {
      Size aSize = rWin.GetOutputSizePixel();
      aSize.Width()  -= 4;
@@ -2115,7 +2168,7 @@ index 94494aa..1eab739 100644
  }
  
  // -----------------------------------------------------------------------
-@@ -2832,7 +2900,7 @@ void lcl_CalcSizeValueSet( Window &rWin, ValueSet &rValueSet, const Size &aItemS
+@@ -2853,7 +2914,7 @@ void lcl_CalcSizeValueSet( Window &rWin, ValueSet &rValueSet, const Size &aItemS
  {
      Size aSize = rValueSet.CalcWindowSizePixel( aItemSize );
      aSize.Width()  += 4;
@@ -2145,7 +2198,7 @@ index 0110960..6c84898 100644
  
      // required because those methods are not virtual in Window (!!!) and must
 diff --git vcl/source/window/dockmgr.cxx vcl/source/window/dockmgr.cxx
-index 6d70c20..5c98a3b 100644
+index bec6e08..5c98a3b 100644
 --- vcl/source/window/dockmgr.cxx
 +++ vcl/source/window/dockmgr.cxx
 @@ -436,6 +436,13 @@ void DockingManager::StartPopupMode( ToolBox *pParentToolBox, const Window *pWin
@@ -2187,7 +2240,7 @@ index 6d70c20..5c98a3b 100644
  }
  
  Point ImplPopupFloatWin::GetToolboxPosition() const
-@@ -733,8 +750,7 @@ void ImplPopupFloatWin::Paint( const Rectangle& )
+@@ -736,8 +750,7 @@ void ImplPopupFloatWin::Paint( const Rectangle& )
  void ImplPopupFloatWin::MouseMove( const MouseEvent& rMEvt )
  {
      Point aMousePos = rMEvt.GetPosPixel();
@@ -2197,7 +2250,7 @@ index 6d70c20..5c98a3b 100644
      {
          if( rMEvt.IsLeft() && GetDragRect().IsInside( aMousePos ) )
          {
-@@ -1238,14 +1254,10 @@ void ImplDockingWindowWrapper::StartPopupMode( ToolBox *pParentToolBox )
+@@ -1241,14 +1254,10 @@ void ImplDockingWindowWrapper::StartPopupMode( ToolBox *pParentToolBox )
      ULONG nFlags =  FLOATWIN_POPUPMODE_ALLOWTEAROFF         |
                      FLOATWIN_POPUPMODE_NOFOCUSCLOSE 	    |
                      FLOATWIN_POPUPMODE_ALLMOUSEBUTTONCLOSE  |
@@ -2214,7 +2267,7 @@ index 6d70c20..5c98a3b 100644
      mpFloatWin->StartPopupMode( pParentToolBox, nFlags );
      GetWindow()->Show();
  
-@@ -1257,6 +1269,11 @@ void ImplDockingWindowWrapper::StartPopupMode( ToolBox *pParentToolBox )
+@@ -1260,6 +1269,11 @@ void ImplDockingWindowWrapper::StartPopupMode( ToolBox *pParentToolBox )
      }
  }
  


More information about the ooo-build-commit mailing list