[Libreoffice-commits] core.git: Branch 'aoo/trunk' - 2 commits - sfx2/source xmloff/source

2014-06-05 Thread Armin Le Grand
 sfx2/source/sidebar/SidebarDockingWindow.cxx |5 ++
 xmloff/source/draw/sdpropls.cxx  |9 ++--
 xmloff/source/text/txtprmap.cxx  |   53 +++
 3 files changed, 38 insertions(+), 29 deletions(-)

New commits:
commit 35f3ceaf60f109f45aa7fef7077aead398bed53f
Author: Armin Le Grand a...@apache.org
Date:   Thu Jun 5 12:24:35 2014 +

i125045 For XMLPropertyMapper using TEXT_PROP_MAP_SHAPE_PARA hide the 
DrawingLayer FillStyle entries by moving them to the front of aXMLParaPropMap 
and using a higher index for construction

diff --git a/xmloff/source/draw/sdpropls.cxx b/xmloff/source/draw/sdpropls.cxx
index 3bb2b72..bcad202 100644
--- a/xmloff/source/draw/sdpropls.cxx
+++ b/xmloff/source/draw/sdpropls.cxx
@@ -123,12 +123,11 @@ const XMLPropertyMapEntry aXMLSDProperties[] =
 GMAP( FillHatchName,  XML_NAMESPACE_DRAW, 
XML_FILL_HATCH_NAME,XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT, 
CTF_FILLHATCHNAME ),
 GMAP( FillBackground, XML_NAMESPACE_DRAW, 
XML_FILL_HATCH_SOLID,   XML_TYPE_BOOL, 0 ),
 GMAP( FillBitmapName, XML_NAMESPACE_DRAW, 
XML_FILL_IMAGE_NAME,XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT, 
CTF_FILLBITMAPNAME ),
-GMAP( FillTransparence,   XML_NAMESPACE_DRAW, XML_OPACITY,   
 XML_TYPE_NEG_PERCENT16|MID_FLAG_MULTI_PROPERTY, 0 ),// exists in 
SW, too
-GMAP( FillTransparenceGradientName,   XML_NAMESPACE_DRAW, 
XML_OPACITY_NAME,   XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT, 
CTF_FILLTRANSNAME ),
-
-GMAP( FillBitmapSizeX,XML_NAMESPACE_DRAW, 
XML_FILL_IMAGE_WIDTH,   XML_SD_TYPE_FILLBITMAPSIZE|MID_FLAG_MULTI_PROPERTY, 
0 ),
+GMAP( FillTransparence,   XML_NAMESPACE_DRAW, XML_OPACITY,   
 XML_TYPE_NEG_PERCENT16|MID_FLAG_MULTI_PROPERTY, 0 ),// exists 
in SW, too
+GMAP( FillTransparenceGradientName,   XML_NAMESPACE_DRAW, 
XML_OPACITY_NAME,   XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT, 
CTF_FILLTRANSNAME ),
+GMAP( FillBitmapSizeX,XML_NAMESPACE_DRAW, 
XML_FILL_IMAGE_WIDTH,   XML_SD_TYPE_FILLBITMAPSIZE|MID_FLAG_MULTI_PROPERTY, 
0 ),
 GMAP( FillBitmapLogicalSize,  XML_NAMESPACE_DRAW, 
XML_FILL_IMAGE_WIDTH,   XML_SD_TYPE_LOGICAL_SIZE|MID_FLAG_MULTI_PROPERTY, 0 
),
-GMAP( FillBitmapSizeY,XML_NAMESPACE_DRAW, 
XML_FILL_IMAGE_HEIGHT,  XML_SD_TYPE_FILLBITMAPSIZE|MID_FLAG_MULTI_PROPERTY, 
0 ),
+GMAP( FillBitmapSizeY,XML_NAMESPACE_DRAW, 
XML_FILL_IMAGE_HEIGHT,  XML_SD_TYPE_FILLBITMAPSIZE|MID_FLAG_MULTI_PROPERTY, 
0 ),
 GMAP( FillBitmapLogicalSize,  XML_NAMESPACE_DRAW, 
XML_FILL_IMAGE_HEIGHT,  XML_SD_TYPE_LOGICAL_SIZE|MID_FLAG_MULTI_PROPERTY, 0 
),
 GMAP( FillBitmapMode, XML_NAMESPACE_STYLE,XML_REPEAT,
 XML_SD_TYPE_BITMAP_MODE|MID_FLAG_MULTI_PROPERTY, 0 ),
 GMAP( FillBitmapPositionOffsetX,  XML_NAMESPACE_DRAW, 
XML_FILL_IMAGE_REF_POINT_X, XML_TYPE_PERCENT, 0 ),
diff --git a/xmloff/source/text/txtprmap.cxx b/xmloff/source/text/txtprmap.cxx
index e1d2205..3604f89 100644
--- a/xmloff/source/text/txtprmap.cxx
+++ b/xmloff/source/text/txtprmap.cxx
@@ -87,6 +87,31 @@ XMLPropertyMapEntry aXMLParaPropMap[] =
 {
 // RES_UNKNOWNATR_CONTAINER
 MP_E( ParaUserDefinedAttributes, TEXT, XMLNS, 
XML_TYPE_ATTRIBUTE_CONTAINER | MID_FLAG_SPECIAL_ITEM, 0 ),
+
+// fill attributes for paragraph backgrounds
+// #125045# moved to the front to be able to exclude these in 
lcl_txtprmap_getMap
+// for TEXT_PROP_MAP_SHAPE_PARA to not have these double for Shapes (which 
already have these)
+GMAP( FillStyle,  XML_NAMESPACE_DRAW, XML_FILL,  
 XML_SW_TYPE_FILLSTYLE, 0 ),
+GMAP( FillColor,  XML_NAMESPACE_DRAW, 
XML_FILL_COLOR, XML_TYPE_COLOR, 0 ),
+GMAP( FillColor2, XML_NAMESPACE_DRAW, 
XML_SECONDARY_FILL_COLOR,   XML_TYPE_COLOR, 0 ),
+GMAP( FillGradientName,   XML_NAMESPACE_DRAW, 
XML_FILL_GRADIENT_NAME, XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT, 
CTF_FILLGRADIENTNAME ),
+GMAP( FillGradientStepCount,  XML_NAMESPACE_DRAW, 
XML_GRADIENT_STEP_COUNT,XML_TYPE_NUMBER16, 0 ),
+GMAP( FillHatchName,  XML_NAMESPACE_DRAW, 
XML_FILL_HATCH_NAME,XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT, 
CTF_FILLHATCHNAME ),
+GMAP( FillBackground, XML_NAMESPACE_DRAW, 
XML_FILL_HATCH_SOLID,   XML_TYPE_BOOL, 0 ),
+GMAP( FillBitmapName, XML_NAMESPACE_DRAW, 
XML_FILL_IMAGE_NAME,XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT, 
CTF_FILLBITMAPNAME ),
+GMAP( FillTransparence,   XML_NAMESPACE_DRAW, XML_OPACITY,   
 XML_TYPE_NEG_PERCENT16|MID_FLAG_MULTI_PROPERTY, 0 ),// exists 
in SW, too
+GMAP( 

[Libreoffice-commits] core.git: Branch 'aoo/trunk' - 2 commits - sfx2/source svx/source

2013-07-06 Thread Pavel Janík
 sfx2/source/sidebar/Layouter.cxx   |2 +-
 svx/source/sidebar/paragraph/ParaPropertyPanel.cxx |2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

New commits:
commit 41a2a272d406ae367a4351a0c71f48c60a20370b
Author: Pavel Janík pavelja...@apache.org
Date:   Sat Jul 6 09:24:41 2013 +

Comment out unused variable to prevent compiler warning.

diff --git a/svx/source/sidebar/paragraph/ParaPropertyPanel.cxx 
b/svx/source/sidebar/paragraph/ParaPropertyPanel.cxx
index 7f136a4..fab2240 100755
--- a/svx/source/sidebar/paragraph/ParaPropertyPanel.cxx
+++ b/svx/source/sidebar/paragraph/ParaPropertyPanel.cxx
@@ -1683,7 +1683,7 @@ ParaPropertyPanel::ParaPropertyPanel(Window* pParent,
 FreeResource();
 
 // Setup the grid layouter.
-const sal_Int32 nMappedImageWidth (Layouter::MapWidth(*this, IMAGE_SIZE));
+// const sal_Int32 nMappedImageWidth (Layouter::MapWidth(*this, 
IMAGE_SIZE));
 const sal_Int32 nMappedImageOffset (Layouter::MapWidth(*this, -3));
 const sal_Int32 nMappedToolBoxItemWidth (Layouter::MapWidth(*this, 
TOOLBOX_ITEM_WIDTH));
 const sal_Int32 nMappedControlWidth (Layouter::MapWidth(*this, 
CONTROL_WIDTH -10));
commit 71285338958c5ee32a8050c0940d357d14e4e7c0
Author: Pavel Janík pavelja...@apache.org
Date:   Sat Jul 6 09:23:34 2013 +

Unname unused argument to prevent compiler warning.

diff --git a/sfx2/source/sidebar/Layouter.cxx b/sfx2/source/sidebar/Layouter.cxx
index 5b651e3..696406b 100644
--- a/sfx2/source/sidebar/Layouter.cxx
+++ b/sfx2/source/sidebar/Layouter.cxx
@@ -90,7 +90,7 @@ void Layouter::SetHorizontalPosition (
 
 
 void Layouter::PrepareForLayouting (
-Window rControl)
+Window /* rControl */)
 {
 //rControl.SetStyle(rControl.GetStyle() | WB_PATHELLIPSIS | WB_INFO);
 }
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Branch 'aoo/trunk' - 2 commits - sfx2/source svx/source

2013-06-12 Thread Andre Fischer
 sfx2/source/view/viewsh.cxx |4 
 svx/source/sidebar/possize/PosSizePropertyPanel.cxx |9 +
 2 files changed, 13 insertions(+)

New commits:
commit 5d8bbe5fe43f94d1c29dda7f1e6e06668a304f78
Author: Andre Fischer a...@apache.org
Date:   Wed Jun 12 13:15:45 2013 +

122453: Initialize and update units of PosSize panel spin fields.

diff --git a/svx/source/sidebar/possize/PosSizePropertyPanel.cxx 
b/svx/source/sidebar/possize/PosSizePropertyPanel.cxx
index 1ebece0..d093d0b 100644
--- a/svx/source/sidebar/possize/PosSizePropertyPanel.cxx
+++ b/svx/source/sidebar/possize/PosSizePropertyPanel.cxx
@@ -720,6 +720,11 @@ void PosSizePropertyPanel::NotifyItemUpdate(
 else
 mbAdjustEnabled = false;
 
+// Pool unit and dialog unit may have changed, make sure that we
+// have the current values.
+mePoolUnit = maTransfWidthControl.GetCoreMetric();
+meDlgUnit = GetModuleFieldUnit();
+
 switch (nSID)
 {
 case SID_ATTR_TRANSFORM_WIDTH:
@@ -732,6 +737,7 @@ void PosSizePropertyPanel::NotifyItemUpdate(
 long mlOldWidth1 = pWidthItem-GetValue();
 
 mlOldWidth1 = Fraction( mlOldWidth1 ) / maUIScale;
+SetFieldUnit( *mpMtrWidth, meDlgUnit, true );
 SetMetricValue( *mpMtrWidth, mlOldWidth1, mePoolUnit );
 mlOldWidth = mlOldWidth1;
 break;
@@ -751,6 +757,7 @@ void PosSizePropertyPanel::NotifyItemUpdate(
 long mlOldHeight1 = pHeightItem-GetValue();
 
 mlOldHeight1 = Fraction( mlOldHeight1 ) / maUIScale;
+SetFieldUnit( *mpMtrHeight, meDlgUnit, true );
 SetMetricValue( *mpMtrHeight, mlOldHeight1, mePoolUnit );
 mlOldHeight = mlOldHeight1;
 break;
@@ -769,6 +776,7 @@ void PosSizePropertyPanel::NotifyItemUpdate(
 {
 long nTmp = pItem-GetValue();
 nTmp = Fraction( nTmp ) / maUIScale;
+SetFieldUnit( *mpMtrPosX, meDlgUnit, true );
 SetMetricValue( *mpMtrPosX, nTmp, mePoolUnit );
 break;
 }
@@ -786,6 +794,7 @@ void PosSizePropertyPanel::NotifyItemUpdate(
 {
 long nTmp = pItem-GetValue();
 nTmp = Fraction( nTmp ) / maUIScale;
+SetFieldUnit( *mpMtrPosY, meDlgUnit, true );
 SetMetricValue( *mpMtrPosY, nTmp, mePoolUnit );
 break;
 }
commit f7f162aef22b025b0d0ffcd0bf0c5eead74143d0
Author: Andre Fischer a...@apache.org
Date:   Wed Jun 12 13:14:18 2013 +

122453: Invalidate slot servers for all view shells on OLE deactivation.

diff --git a/sfx2/source/view/viewsh.cxx b/sfx2/source/view/viewsh.cxx
index 2009b0c..28f3925 100644
--- a/sfx2/source/view/viewsh.cxx
+++ b/sfx2/source/view/viewsh.cxx
@@ -988,6 +988,10 @@ void SfxViewShell::UIDeactivated( SfxInPlaceClient* 
/*pClient*/ )
 // uno::Reference  frame::XFramesSupplier  xParentFrame( 
xOwnFrame-getCreator(), uno::UNO_QUERY );
 // if ( xParentFrame.is() )
 // xParentFrame-setActiveFrame( uno::Reference  frame::XFrame () );
+
+// Make sure that slot servers are initialized or updated after
+// an OLE object is deactivated.
+pFrame-GetBindings().InvalidateAll(sal_True);
 }
 
 //
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Branch 'aoo/trunk' - 2 commits - sfx2/source

2013-05-16 Thread Andre Fischer
 sfx2/source/sidebar/PanelTitleBar.cxx|8 ++-
 sfx2/source/sidebar/Sidebar.hrc  |5 ++--
 sfx2/source/sidebar/Sidebar.src  |5 
 sfx2/source/sidebar/SidebarController.cxx|   28 -
 sfx2/source/sidebar/SidebarDockingWindow.cxx |   30 +++
 sfx2/source/sidebar/SidebarDockingWindow.hxx |4 +++
 6 files changed, 67 insertions(+), 13 deletions(-)

New commits:
commit ca7264d7ab7e8b70693362d60227c7dd7626df8b
Author: Andre Fischer a...@apache.org
Date:   Thu May 16 09:51:11 2013 +

122320: Show closer after docking sidebar.  Prevent sidebar from being 
docked above or below edit view.

diff --git a/sfx2/source/sidebar/SidebarController.cxx 
b/sfx2/source/sidebar/SidebarController.cxx
index 910e6dd..f2f9a4d 100644
--- a/sfx2/source/sidebar/SidebarController.cxx
+++ b/sfx2/source/sidebar/SidebarController.cxx
@@ -1022,11 +1022,13 @@ bool SidebarController::CanModifyChildWindowWidth (void)
 
 sal_uInt16 nRow (0x);
 sal_uInt16 nColumn (0x);
-pSplitWindow-GetWindowPos(mpParentWindow, nColumn, nRow);
-
-sal_uInt16 nRowCount (pSplitWindow-GetWindowCount(nColumn));
-
-return nRowCount==1;
+if (pSplitWindow-GetWindowPos(mpParentWindow, nColumn, nRow))
+{
+sal_uInt16 nRowCount (pSplitWindow-GetWindowCount(nColumn));
+return nRowCount==1;
+}
+else
+return false;
 }
 
 
@@ -1078,17 +1080,23 @@ void SidebarController::RestrictWidth (void)
 
 SfxSplitWindow* SidebarController::GetSplitWindow (void)
 {
-if (mpSplitWindow == NULL)
+if (mpParentWindow != NULL)
 {
-if (mpParentWindow != NULL)
+SfxSplitWindow* pSplitWindow = 
dynamic_castSfxSplitWindow*(mpParentWindow-GetParent());
+if (pSplitWindow != mpSplitWindow)
 {
-mpSplitWindow = 
dynamic_castSfxSplitWindow*(mpParentWindow-GetParent());
+if (mpSplitWindow != NULL)
+mpSplitWindow-RemoveEventListener(LINK(this, 
SidebarController, WindowEventHandler));
+
+mpSplitWindow = pSplitWindow;
+
 if (mpSplitWindow != NULL)
 mpSplitWindow-AddEventListener(LINK(this, SidebarController, 
WindowEventHandler));
 }
+return mpSplitWindow;
 }
-
-return mpSplitWindow;
+else
+return NULL;
 }
 
 
diff --git a/sfx2/source/sidebar/SidebarDockingWindow.cxx 
b/sfx2/source/sidebar/SidebarDockingWindow.cxx
index a119613..1b6dcd8 100644
--- a/sfx2/source/sidebar/SidebarDockingWindow.cxx
+++ b/sfx2/source/sidebar/SidebarDockingWindow.cxx
@@ -108,4 +108,34 @@ sal_Bool SidebarDockingWindow::Close (void)
 }
 
 
+
+
+SfxChildAlignment SidebarDockingWindow::CheckAlignment (
+SfxChildAlignment eCurrentAlignment,
+SfxChildAlignment eRequestedAlignment)
+{
+switch (eRequestedAlignment)
+{
+case SFX_ALIGN_TOP:
+case SFX_ALIGN_HIGHESTTOP:
+case SFX_ALIGN_LOWESTTOP:
+case SFX_ALIGN_BOTTOM:
+case SFX_ALIGN_LOWESTBOTTOM:
+case SFX_ALIGN_HIGHESTBOTTOM:
+return eCurrentAlignment;
+
+case SFX_ALIGN_LEFT:
+case SFX_ALIGN_RIGHT:
+case SFX_ALIGN_FIRSTLEFT:
+case SFX_ALIGN_LASTLEFT:
+case SFX_ALIGN_FIRSTRIGHT:
+case SFX_ALIGN_LASTRIGHT:
+return eRequestedAlignment;
+
+default:
+return eRequestedAlignment;
+}
+}
+
+
 } } // end of namespace sfx2::sidebar
diff --git a/sfx2/source/sidebar/SidebarDockingWindow.hxx 
b/sfx2/source/sidebar/SidebarDockingWindow.hxx
index 55347be..338e31e 100644
--- a/sfx2/source/sidebar/SidebarDockingWindow.hxx
+++ b/sfx2/source/sidebar/SidebarDockingWindow.hxx
@@ -53,6 +53,10 @@ protected:
 // Window overridables
 virtual void GetFocus (void);
 
+virtual SfxChildAlignment CheckAlignment (
+SfxChildAlignment eCurrentAlignment,
+SfxChildAlignment eRequestedAlignment);
+
 private:
 ::rtl::Referencesfx2::sidebar::SidebarController mpSidebarController;
 
commit e785c5125994bbfdb4e69108b5a73a184b3ced49
Author: Andre Fischer a...@apache.org
Date:   Thu May 16 08:49:36 2013 +

122271: Provide accessible for panels that includes the panel title.

diff --git a/sfx2/source/sidebar/PanelTitleBar.cxx 
b/sfx2/source/sidebar/PanelTitleBar.cxx
index d8bfb25..7a5191e 100644
--- a/sfx2/source/sidebar/PanelTitleBar.cxx
+++ b/sfx2/source/sidebar/PanelTitleBar.cxx
@@ -48,7 +48,7 @@ static const sal_Int32 gaRightIconPadding (5);
 PanelTitleBar::PanelTitleBar (
 const ::rtl::OUString rsTitle,
 Window* pParentWindow,
-Panel* pPanel )
+Panel* pPanel)
 : TitleBar(rsTitle, pParentWindow, GetBackgroundPaint()),
   mbIsLeftButtonDown(false),
   mpPanel(pPanel),
@@ -57,6 +57,12 @@ PanelTitleBar::PanelTitleBar (
 {
 OSL_ASSERT(mpPanel != NULL);
 
+const ::rtl::OUString sAccessibleName(
+String(SfxResId(SFX_STR_SIDEBAR_ACCESSIBILITY_PANEL_PREFIX))
+ 

[Libreoffice-commits] core.git: Branch 'aoo/trunk' - 2 commits - sfx2/source ucb/source

2013-04-05 Thread Oliver-Rainer Wittmann
 sfx2/source/dialog/splitwin.cxx|   90 +
 ucb/source/ucp/webdav/SerfRequestProcessorImpl.cxx |6 -
 2 files changed, 80 insertions(+), 16 deletions(-)

New commits:
commit e50d4638e4fe64eb05b8f22006c7f04c05ec288b
Author: Oliver-Rainer Wittmann o...@apache.org
Date:   Fri Apr 5 14:07:46 2013 +

#122008# - use serf_bucket_headers_setc(..) when header name's data need 
to be copied

diff --git a/ucb/source/ucp/webdav/SerfRequestProcessorImpl.cxx 
b/ucb/source/ucp/webdav/SerfRequestProcessorImpl.cxx
index fa7c5f8..d2419c5 100644
--- a/ucb/source/ucp/webdav/SerfRequestProcessorImpl.cxx
+++ b/ucb/source/ucp/webdav/SerfRequestProcessorImpl.cxx
@@ -99,9 +99,9 @@ void SerfRequestProcessorImpl::setRequestHeaders( 
serf_bucket_t* inoutSerfHeader
 bHasUserAgent = aHeaderIter-first.equalsAsciiL(
 RTL_CONSTASCII_STRINGPARAM( User-Agent ) );
 
-serf_bucket_headers_set( inoutSerfHeaderBucket,
- aHeader.getStr(),
- aValue.getStr() );
+serf_bucket_headers_setc( inoutSerfHeaderBucket,
+  aHeader.getStr(),
+  aValue.getStr() );
 
 ++aHeaderIter;
 }
commit cad2fc1a82a3efb2abd4396fe2efc2231fb783e5
Author: Oliver-Rainer Wittmann o...@apache.org
Date:   Fri Apr 5 10:24:49 2013 +

#121933# - some improvement to the docking area layout on a 
undock-dock-cycle of a window

diff --git a/sfx2/source/dialog/splitwin.cxx b/sfx2/source/dialog/splitwin.cxx
index 6dda801..9e9cfa2 100644
--- a/sfx2/source/dialog/splitwin.cxx
+++ b/sfx2/source/dialog/splitwin.cxx
@@ -51,6 +51,9 @@
 #include sfx2/msgpool.hxx
 #include sfx2/viewfrm.hxx
 
+#include vector
+#include utility
+
 using namespace ::com::sun::star::uno;
 using namespace ::rtl;
 
@@ -58,6 +61,35 @@ using namespace ::rtl;
 #define nPixel  30L
 #define USERITEM_NAME   OUString::createFromAscii( UserItem )
 
+namespace {
+// helper class to deactivate UpdateMode, if needed, for the life time of 
an instance
+class DeactivateUpdateMode
+{
+public:
+explicit DeactivateUpdateMode( SfxSplitWindow rSplitWindow )
+: mrSplitWindow( rSplitWindow )
+, mbUpdateMode( rSplitWindow.IsUpdateMode() )
+{
+if ( mbUpdateMode )
+{
+mrSplitWindow.SetUpdateMode( sal_False );
+}
+}
+
+~DeactivateUpdateMode( void )
+{
+if ( mbUpdateMode )
+{
+mrSplitWindow.SetUpdateMode( sal_True );
+}
+}
+
+private:
+SfxSplitWindow mrSplitWindow;
+const sal_Bool mbUpdateMode;
+};
+}
+
 struct SfxDock_Impl
 {
 sal_uInt16  nType;
@@ -399,15 +431,17 @@ void SfxSplitWindow::Split()
 
 SplitWindow::Split();
 
+std::vector std::pair sal_uInt16, long   aNewOrgSizes;
+
 sal_uInt16 nCount = pDockArr-Count();
 for ( sal_uInt16 n=0; nnCount; n++ )
 {
 SfxDock_Impl *pD = (*pDockArr)[n];
 if ( pD-pWin )
 {
-sal_uInt16 nId = pD-nType;
-long nSize= GetItemSize( nId, SWIB_FIXED );
-long nSetSize = GetItemSize( GetSet( nId ) );
+const sal_uInt16 nId = pD-nType;
+const long nSize= GetItemSize( nId, SWIB_FIXED );
+const long nSetSize = GetItemSize( GetSet( nId ) );
 Size aSize;
 
 if ( IsHorizontal() )
@@ -422,6 +456,18 @@ void SfxSplitWindow::Split()
 }
 
 pD-pWin-SetItemSize_Impl( aSize );
+
+aNewOrgSizes.push_back( std::pair sal_uInt16, long ( nId, nSize 
) );
+}
+}
+
+// workaround insuffiency of SplitWindow regarding dock layouting:
+// apply FIXED item size as 'original' item size to improve layouting of 
undock-dock-cycle of a window
+{
+DeactivateUpdateMode aDeactivateUpdateMode( *this );
+for ( sal_uInt16 i = 0; i  aNewOrgSizes.size(); ++i )
+{
+SetItemSize( aNewOrgSizes[i].first, aNewOrgSizes[i].second );
 }
 }
 
@@ -684,9 +730,7 @@ void SfxSplitWindow::InsertWindow_Impl( SfxDock_Impl* pDock,
 
 pDock-nSize = nWinSize;
 
-sal_Bool bUpdateMode = IsUpdateMode();
-if ( bUpdateMode )
-SetUpdateMode( sal_False );
+DeactivateUpdateMode* pDeactivateUpdateMode = new DeactivateUpdateMode( 
*this );
 
 if ( bNewLine || nLine == GetItemCount( 0 ) )
 {
@@ -759,9 +803,32 @@ void SfxSplitWindow::InsertWindow_Impl( SfxDock_Impl* 
pDock,
 pWorkWin-ShowChilds_Impl();
 }
 
-if ( bUpdateMode )
-SetUpdateMode( sal_True );
+delete pDeactivateUpdateMode;
 bLocked = sal_False;
+
+// workaround insuffiency of SplitWindow regarding dock layouting:
+// apply FIXED item size as 'original' item size to improve layouting of 
undock-dock-cycle of a window
+{
+