[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-4.4' - 11 commits - basic/source filter/source icon-themes/galaxy sd/source sfx2/source sw/qa sw/source

Andras Timar andras.timar at collabora.com
Tue May 19 03:41:16 PDT 2015


 basic/source/classes/sb.cxx                        |   19 +++-
 dev/null                                           |binary
 filter/source/xslt/odf2xhtml/export/xhtml/body.xsl |    4 
 icon-themes/galaxy/res/helpimg/rechenlt.png        |binary
 sd/source/ui/app/sdxfer.cxx                        |   18 +++-
 sfx2/source/sidebar/SidebarController.cxx          |   90 ++++++++-------------
 sw/qa/extras/odfimport/odfimport.cxx               |    2 
 sw/source/core/doc/docbm.cxx                       |    2 
 sw/source/core/layout/flowfrm.cxx                  |    9 +-
 sw/source/core/unocore/unoframe.cxx                |    7 +
 sw/source/core/unocore/unotext.cxx                 |   19 ++--
 sw/source/filter/ww8/docxattributeoutput.cxx       |    2 
 12 files changed, 99 insertions(+), 73 deletions(-)

New commits:
commit 8ebb31f73a68a388a2c37d810db92c6fce35b0b2
Author: Andras Timar <andras.timar at collabora.com>
Date:   Mon May 18 18:59:30 2015 +0200

    tdf#80075 correct Writer formula bar screenshot
    
    (There is no localizable content in new screenshot.)
    
    Conflicts:
    	icon-themes/galaxy/res/helpimg/tr/rechenlt.png
    
    Change-Id: I140d6996c747d2ca8938d2072711041896044b18
    Reviewed-on: https://gerrit.libreoffice.org/15791
    Reviewed-by: Adolfo Jayme Barrientos <fitojb at ubuntu.com>
    Tested-by: Adolfo Jayme Barrientos <fitojb at ubuntu.com>

diff --git a/icon-themes/galaxy/res/helpimg/bg/rechenlt.png b/icon-themes/galaxy/res/helpimg/bg/rechenlt.png
deleted file mode 100644
index 0147e33..0000000
Binary files a/icon-themes/galaxy/res/helpimg/bg/rechenlt.png and /dev/null differ
diff --git a/icon-themes/galaxy/res/helpimg/cs/rechenlt.png b/icon-themes/galaxy/res/helpimg/cs/rechenlt.png
deleted file mode 100644
index fc0b645..0000000
Binary files a/icon-themes/galaxy/res/helpimg/cs/rechenlt.png and /dev/null differ
diff --git a/icon-themes/galaxy/res/helpimg/da/rechenlt.png b/icon-themes/galaxy/res/helpimg/da/rechenlt.png
deleted file mode 100644
index b79771d..0000000
Binary files a/icon-themes/galaxy/res/helpimg/da/rechenlt.png and /dev/null differ
diff --git a/icon-themes/galaxy/res/helpimg/de/rechenlt.png b/icon-themes/galaxy/res/helpimg/de/rechenlt.png
deleted file mode 100644
index d7340bf..0000000
Binary files a/icon-themes/galaxy/res/helpimg/de/rechenlt.png and /dev/null differ
diff --git a/icon-themes/galaxy/res/helpimg/es/rechenlt.png b/icon-themes/galaxy/res/helpimg/es/rechenlt.png
deleted file mode 100644
index b5ce022..0000000
Binary files a/icon-themes/galaxy/res/helpimg/es/rechenlt.png and /dev/null differ
diff --git a/icon-themes/galaxy/res/helpimg/et/rechenlt.png b/icon-themes/galaxy/res/helpimg/et/rechenlt.png
deleted file mode 100644
index fc0b645..0000000
Binary files a/icon-themes/galaxy/res/helpimg/et/rechenlt.png and /dev/null differ
diff --git a/icon-themes/galaxy/res/helpimg/fr/rechenlt.png b/icon-themes/galaxy/res/helpimg/fr/rechenlt.png
deleted file mode 100644
index 099ce6a..0000000
Binary files a/icon-themes/galaxy/res/helpimg/fr/rechenlt.png and /dev/null differ
diff --git a/icon-themes/galaxy/res/helpimg/hu/rechenlt.png b/icon-themes/galaxy/res/helpimg/hu/rechenlt.png
deleted file mode 100644
index 23b3645..0000000
Binary files a/icon-themes/galaxy/res/helpimg/hu/rechenlt.png and /dev/null differ
diff --git a/icon-themes/galaxy/res/helpimg/it/rechenlt.png b/icon-themes/galaxy/res/helpimg/it/rechenlt.png
deleted file mode 100644
index 1c64d49..0000000
Binary files a/icon-themes/galaxy/res/helpimg/it/rechenlt.png and /dev/null differ
diff --git a/icon-themes/galaxy/res/helpimg/ja/rechenlt.png b/icon-themes/galaxy/res/helpimg/ja/rechenlt.png
deleted file mode 100644
index 02aab56..0000000
Binary files a/icon-themes/galaxy/res/helpimg/ja/rechenlt.png and /dev/null differ
diff --git a/icon-themes/galaxy/res/helpimg/km/rechenlt.png b/icon-themes/galaxy/res/helpimg/km/rechenlt.png
deleted file mode 100644
index 6083a52..0000000
Binary files a/icon-themes/galaxy/res/helpimg/km/rechenlt.png and /dev/null differ
diff --git a/icon-themes/galaxy/res/helpimg/ko/rechenlt.png b/icon-themes/galaxy/res/helpimg/ko/rechenlt.png
deleted file mode 100644
index 101d650..0000000
Binary files a/icon-themes/galaxy/res/helpimg/ko/rechenlt.png and /dev/null differ
diff --git a/icon-themes/galaxy/res/helpimg/pl/rechenlt.png b/icon-themes/galaxy/res/helpimg/pl/rechenlt.png
deleted file mode 100644
index 45df963..0000000
Binary files a/icon-themes/galaxy/res/helpimg/pl/rechenlt.png and /dev/null differ
diff --git a/icon-themes/galaxy/res/helpimg/pt-BR/rechenlt.png b/icon-themes/galaxy/res/helpimg/pt-BR/rechenlt.png
deleted file mode 100644
index 890d8d8..0000000
Binary files a/icon-themes/galaxy/res/helpimg/pt-BR/rechenlt.png and /dev/null differ
diff --git a/icon-themes/galaxy/res/helpimg/pt/rechenlt.png b/icon-themes/galaxy/res/helpimg/pt/rechenlt.png
deleted file mode 100644
index 890d8d8..0000000
Binary files a/icon-themes/galaxy/res/helpimg/pt/rechenlt.png and /dev/null differ
diff --git a/icon-themes/galaxy/res/helpimg/rechenlt.png b/icon-themes/galaxy/res/helpimg/rechenlt.png
index ef322de..924e83e 100644
Binary files a/icon-themes/galaxy/res/helpimg/rechenlt.png and b/icon-themes/galaxy/res/helpimg/rechenlt.png differ
diff --git a/icon-themes/galaxy/res/helpimg/sk/rechenlt.png b/icon-themes/galaxy/res/helpimg/sk/rechenlt.png
deleted file mode 100644
index fc0b645..0000000
Binary files a/icon-themes/galaxy/res/helpimg/sk/rechenlt.png and /dev/null differ
diff --git a/icon-themes/galaxy/res/helpimg/sl/rechenlt.png b/icon-themes/galaxy/res/helpimg/sl/rechenlt.png
deleted file mode 100644
index 8e60bea..0000000
Binary files a/icon-themes/galaxy/res/helpimg/sl/rechenlt.png and /dev/null differ
diff --git a/icon-themes/galaxy/res/helpimg/sv/rechenlt.png b/icon-themes/galaxy/res/helpimg/sv/rechenlt.png
deleted file mode 100644
index dd736ae..0000000
Binary files a/icon-themes/galaxy/res/helpimg/sv/rechenlt.png and /dev/null differ
diff --git a/icon-themes/galaxy/res/helpimg/tr/rechenlt.png b/icon-themes/galaxy/res/helpimg/tr/rechenlt.png
deleted file mode 100644
index 64f96f2..0000000
Binary files a/icon-themes/galaxy/res/helpimg/tr/rechenlt.png and /dev/null differ
diff --git a/icon-themes/galaxy/res/helpimg/zh-CN/rechenlt.png b/icon-themes/galaxy/res/helpimg/zh-CN/rechenlt.png
deleted file mode 100644
index b14e3a2..0000000
Binary files a/icon-themes/galaxy/res/helpimg/zh-CN/rechenlt.png and /dev/null differ
diff --git a/icon-themes/galaxy/res/helpimg/zh-TW/rechenlt.png b/icon-themes/galaxy/res/helpimg/zh-TW/rechenlt.png
deleted file mode 100644
index 54ccac3..0000000
Binary files a/icon-themes/galaxy/res/helpimg/zh-TW/rechenlt.png and /dev/null differ
commit bbd94a62df2fb9184b7e64d2abcf47934e1c5bd6
Author: Michael Stahl <mstahl at redhat.com>
Date:   Fri May 15 23:57:04 2015 +0200

    tdf#90808: sw: fix detection of duplicate CrossRefBookmarks
    
    The check for existing bookmark positions is using the wrong position.
    It must use the Start of the pam, because the constructor of
    CrossRefBookmark only uses the Start of the pam.
    
    (cherry picked from commit 9d0c51daea67104349cac26de9839afa8baeb099)
    
    Conflicts:
    	sw/source/core/doc/docbm.cxx
    
    Change-Id: I343f1c0e3571847a965a27571f01136810e83485
    Reviewed-on: https://gerrit.libreoffice.org/15745
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sw/source/core/doc/docbm.cxx b/sw/source/core/doc/docbm.cxx
index 9567c3a..ce0ff19 100644
--- a/sw/source/core/doc/docbm.cxx
+++ b/sw/source/core/doc/docbm.cxx
@@ -377,7 +377,7 @@ namespace sw { namespace mark
             " - more than USHRT_MAX marks are not supported correctly");
         // There should only be one CrossRefBookmark per Textnode per Type
         if ((eType == CROSSREF_NUMITEM_BOOKMARK || eType == CROSSREF_HEADING_BOOKMARK)
-            && (lcl_FindMarkAtPos(m_vBookmarks, *rPaM.GetPoint(), eType) != m_vBookmarks.end()))
+            && (lcl_FindMarkAtPos(m_vBookmarks, *rPaM.Start(), eType) != m_vBookmarks.end()))
         {   // this can happen via UNO API
             SAL_WARN("sw.core", "MarkManager::makeMark(..)"
                 " - refusing to create duplicate CrossRefBookmark");
commit 7ee4e2564496a2df244432330019d6a904831b62
Author: Michael Stahl <mstahl at redhat.com>
Date:   Fri May 15 18:09:37 2015 +0200

    tdf#91140: ODF import: try to ignore invalid draw:fill="solid"
    
    ... which was apparently written by LO >= 4.1 on a frame with image
    background, under unknown circumstances.
    
    Change-Id: Ie86643ab67f58bfe5c19d6a1f80a7af8f793edf2
    (cherry picked from commit 97887cd810194ee556d2ec12f2a8be40075c29d2)
    Reviewed-on: https://gerrit.libreoffice.org/15743
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sw/qa/extras/odfimport/odfimport.cxx b/sw/qa/extras/odfimport/odfimport.cxx
index 5db4370..1dfef14 100644
--- a/sw/qa/extras/odfimport/odfimport.cxx
+++ b/sw/qa/extras/odfimport/odfimport.cxx
@@ -562,7 +562,7 @@ DECLARE_ODFIMPORT_TEST(fdo81223, "fdo81223.odt")
     uno::Reference<beans::XPropertySet> xFrame(xIndexAccess->getByIndex(0), uno::UNO_QUERY);
     sal_Int32 nValue(0);
     xFrame->getPropertyValue("BackColor") >>= nValue;
-    CPPUNIT_ASSERT_EQUAL(sal_Int32(0xfeffffff), nValue);
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(0xffffffff), nValue);
 }
 
 DECLARE_ODFIMPORT_TEST(fdo90130_1, "fdo90130-1.odt")
diff --git a/sw/source/core/unocore/unoframe.cxx b/sw/source/core/unocore/unoframe.cxx
index a418203..7168777 100644
--- a/sw/source/core/unocore/unoframe.cxx
+++ b/sw/source/core/unocore/unoframe.cxx
@@ -254,8 +254,13 @@ bool BaseFrameProperties_Impl::FillBaseProperties(SfxItemSet& rToSet, const SfxI
     const uno::Any* pXFillBackgroundItem = 0; GetProperty(XATTR_FILLBACKGROUND, 0, pXFillBackgroundItem);
     const uno::Any* pOwnAttrFillBmpItem = 0; GetProperty(OWN_ATTR_FILLBMP_MODE, 0, pOwnAttrFillBmpItem);
 
+    // tdf#91140: ignore SOLID fill style for determining if fill style is used
+    // but there is a GraphicURL
+    const bool bFillStyleUsed(pXFillStyleItem && pXFillStyleItem->hasValue() &&
+        (pXFillStyleItem->get<drawing::FillStyle>() != drawing::FillStyle_SOLID
+         || !pGrURL));
     const bool bXFillStyleItemUsed(
-        pXFillStyleItem ||
+        bFillStyleUsed ||
         pXFillColorItem ||
         pXFillGradientItem || pXFillGradientNameItem ||
         pXFillHatchItem || pXFillHatchNameItem ||
commit a658823a3fe0c18c369013a799510dcf1062bd91
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri May 8 15:49:08 2015 +0100

    misspell some words, copy and paste slide to gimp
    
    and we don't want to see the mis-spelt underlines
    
    Change-Id: Ib3ae29297a1697e0f7b0caa816504da7edf721d1
    Reviewed-on: https://gerrit.libreoffice.org/15679
    Reviewed-by: Adolfo Jayme Barrientos <fitojb at ubuntu.com>
    Tested-by: Adolfo Jayme Barrientos <fitojb at ubuntu.com>

diff --git a/sd/source/ui/app/sdxfer.cxx b/sd/source/ui/app/sdxfer.cxx
index dda4f74..4ac1fac 100644
--- a/sd/source/ui/app/sdxfer.cxx
+++ b/sd/source/ui/app/sdxfer.cxx
@@ -518,13 +518,27 @@ bool SdTransferable::GetData( const DataFlavor& rFlavor, const OUString& rDestDo
         }
         else if( nFormat == FORMAT_GDIMETAFILE )
         {
-            if( mpSdViewIntern )
+            if (mpSdViewIntern)
+            {
+                const bool bToggleOnlineSpell = mpSdDrawDocumentIntern && mpSdDrawDocumentIntern->GetOnlineSpell();
+                if (bToggleOnlineSpell)
+                    mpSdDrawDocumentIntern->SetOnlineSpell(false);
                 bOK = SetGDIMetaFile( mpSdViewIntern->GetMarkedObjMetaFile( true ), rFlavor );
+                if (bToggleOnlineSpell)
+                    mpSdDrawDocumentIntern->SetOnlineSpell(true);
+            }
         }
         else if( FORMAT_BITMAP == nFormat || SOT_FORMATSTR_ID_PNG == nFormat )
         {
-            if( mpSdViewIntern )
+            if (mpSdViewIntern)
+            {
+                const bool bToggleOnlineSpell = mpSdDrawDocumentIntern && mpSdDrawDocumentIntern->GetOnlineSpell();
+                if (bToggleOnlineSpell)
+                    mpSdDrawDocumentIntern->SetOnlineSpell(false);
                 bOK = SetBitmapEx( mpSdViewIntern->GetMarkedObjBitmapEx(true), rFlavor );
+                if (bToggleOnlineSpell)
+                    mpSdDrawDocumentIntern->SetOnlineSpell(true);
+            }
         }
         else if( ( nFormat == FORMAT_STRING ) && mpBookmark )
         {
commit 9b9ce755a7665c5ef06b9d167ec834afd847a5a9
Author: Robert Antoni Buj Gelonch <robert.buj at gmail.com>
Date:   Thu May 14 15:46:02 2015 +0200

    odf2xhtml: tdf#66999 there is no attribute 'name'
    
    Change-Id: If00ef284326f16f59a2e85864a344b634a02f37e
    Reviewed-on: https://gerrit.libreoffice.org/15730
    Reviewed-by: Adolfo Jayme Barrientos <fitojb at ubuntu.com>
    Tested-by: Adolfo Jayme Barrientos <fitojb at ubuntu.com>

diff --git a/filter/source/xslt/odf2xhtml/export/xhtml/body.xsl b/filter/source/xslt/odf2xhtml/export/xhtml/body.xsl
index a89adfc..615e1a1 100644
--- a/filter/source/xslt/odf2xhtml/export/xhtml/body.xsl
+++ b/filter/source/xslt/odf2xhtml/export/xhtml/body.xsl
@@ -2909,7 +2909,7 @@
 
 	<xsl:template match="text:bookmark|text:bookmark-start">
 		<xsl:element name="a">
-			<xsl:attribute name="name">
+			<xsl:attribute name="id">
 				<xsl:value-of select="@text:name"/>
 			</xsl:attribute>
 		</xsl:element>
commit 5fdac22dd2d7f3f80df7265cad7ce1d95d255dcf
Author: Robert Antoni Buj Gelonch <robert.buj at gmail.com>
Date:   Thu May 14 15:49:53 2015 +0200

    odf2xhtml: tdf#66999 character '–' is not allowed in the value of attribute 'id'
    
    Change-Id: I3c72917cf809adbb8b074cd187c50b12def1616c
    Reviewed-on: https://gerrit.libreoffice.org/15731
    Reviewed-by: Adolfo Jayme Barrientos <fitojb at ubuntu.com>
    Tested-by: Adolfo Jayme Barrientos <fitojb at ubuntu.com>

diff --git a/filter/source/xslt/odf2xhtml/export/xhtml/body.xsl b/filter/source/xslt/odf2xhtml/export/xhtml/body.xsl
index 32f0ffe..a89adfc 100644
--- a/filter/source/xslt/odf2xhtml/export/xhtml/body.xsl
+++ b/filter/source/xslt/odf2xhtml/export/xhtml/body.xsl
@@ -1262,7 +1262,7 @@
 		<!-- REFERENCE HANDLING - ANCHOR -->
 		<xsl:element namespace="{$namespace}" name="a">
 			<xsl:attribute name="id">
-				<xsl:value-of select="translate(concat('a_',normalize-space($headingNumber), '_', normalize-space($title)), '&#xA;&<>.,;: %()[]/\+', '___________________________')"/>
+				<xsl:value-of select="translate(concat('a_',normalize-space($headingNumber), '_', normalize-space($title)), '&#xA;&<>–.,;: %()[]/\+', '____________________________')" disable-output-escaping="yes"/>
 			</xsl:attribute>
 
 			<xsl:element name="span">
commit cb5ef57d3c36bf8ce2ec0908ef68a15a37b38c65
Author: Michael Stahl <mstahl at redhat.com>
Date:   Wed May 13 23:48:51 2015 +0200

    tdf#85424: sw: fix ~SwIndexReg assert in SwXText::insertControlCharacter()
    
    Remove pointless duplicate temporary PaM.
    
    Change-Id: I28a1937928b6c3c21442bbfcb77377372c1cf40b
    (cherry picked from commit 847b4537928ff64cfdd6532704f7c48d947ac00f)
    Reviewed-on: https://gerrit.libreoffice.org/15725
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sw/source/core/unocore/unotext.cxx b/sw/source/core/unocore/unotext.cxx
index 2be0de2..f2ad346 100644
--- a/sw/source/core/unocore/unotext.cxx
+++ b/sw/source/core/unocore/unotext.cxx
@@ -415,10 +415,10 @@ throw (lang::IllegalArgumentException, uno::RuntimeException, std::exception)
                 IDocumentContentOperations::INS_EMPTYEXPAND)
         : IDocumentContentOperations::INS_EMPTYEXPAND;
 
-    SwPaM aTmp(*aPam.Start());
     if (bAbsorb && aPam.HasMark())
     {
         m_pImpl->m_pDoc->getIDocumentContentOperations().DeleteAndJoin(aPam);
+        aPam.DeleteMark();
     }
 
     sal_Unicode cIns = 0;
@@ -426,13 +426,13 @@ throw (lang::IllegalArgumentException, uno::RuntimeException, std::exception)
     {
         case text::ControlCharacter::PARAGRAPH_BREAK :
             // a table cell now becomes an ordinary text cell!
-            m_pImpl->m_pDoc->ClearBoxNumAttrs( aTmp.GetPoint()->nNode );
-            m_pImpl->m_pDoc->getIDocumentContentOperations().SplitNode( *aTmp.GetPoint(), false );
+            m_pImpl->m_pDoc->ClearBoxNumAttrs(aPam.GetPoint()->nNode);
+            m_pImpl->m_pDoc->getIDocumentContentOperations().SplitNode(*aPam.GetPoint(), false);
             break;
         case text::ControlCharacter::APPEND_PARAGRAPH:
         {
-            m_pImpl->m_pDoc->ClearBoxNumAttrs( aTmp.GetPoint()->nNode );
-            m_pImpl->m_pDoc->getIDocumentContentOperations().AppendTxtNode( *aTmp.GetPoint() );
+            m_pImpl->m_pDoc->ClearBoxNumAttrs(aPam.GetPoint()->nNode);
+            m_pImpl->m_pDoc->getIDocumentContentOperations().AppendTxtNode(*aPam.GetPoint());
 
             const uno::Reference<lang::XUnoTunnel> xRangeTunnel(
                     xTextRange, uno::UNO_QUERY);
@@ -443,12 +443,12 @@ throw (lang::IllegalArgumentException, uno::RuntimeException, std::exception)
                             xRangeTunnel);
             if (pRange)
             {
-                pRange->SetPositions(aTmp);
+                pRange->SetPositions(aPam);
             }
             else if (pCursor)
             {
                 SwPaM *const pCrsr = pCursor->GetPaM();
-                *pCrsr->GetPoint() = *aTmp.GetPoint();
+                *pCrsr->GetPoint() = *aPam.GetPoint();
                 pCrsr->DeleteMark();
             }
         }
@@ -460,7 +460,8 @@ throw (lang::IllegalArgumentException, uno::RuntimeException, std::exception)
     }
     if (cIns)
     {
-        m_pImpl->m_pDoc->getIDocumentContentOperations().InsertString( aTmp, OUString(cIns), nInsertFlags );
+        m_pImpl->m_pDoc->getIDocumentContentOperations().InsertString(
+                aPam, OUString(cIns), nInsertFlags);
     }
 
     if (bAbsorb)
@@ -472,7 +473,7 @@ throw (lang::IllegalArgumentException, uno::RuntimeException, std::exception)
         OTextCursorHelper *const pCursor =
             ::sw::UnoTunnelGetImplementation<OTextCursorHelper>(xRangeTunnel);
 
-        SwCursor aCrsr(*aTmp.GetPoint(),0,false);
+        SwCursor aCrsr(*aPam.GetPoint(), 0, false);
         SwUnoCursorHelper::SelectPam(aCrsr, true);
         aCrsr.Left(1, CRSR_SKIP_CHARS, false, false);
         // here, the PaM needs to be moved:
commit b86e3519f783df1bf286a9a26d5769c0e836934c
Author: Michael Stahl <mstahl at redhat.com>
Date:   Tue May 12 13:47:38 2015 +0200

    tdf#90969: basic: add horrible hack to avoid crash due to ...
    
    ... the stupid global variable GaDocBasicItems.
    
    Change-Id: Ib849e0e2b661e54005d00091f6d6fc474dc5549b
    (cherry picked from commit be88e305eeac88e51f83efc004d4b60b87f1e757)
    Reviewed-on: https://gerrit.libreoffice.org/15715
    Reviewed-by: Björn Michaelsen <bjoern.michaelsen at canonical.com>
    Tested-by: Björn Michaelsen <bjoern.michaelsen at canonical.com>

diff --git a/basic/source/classes/sb.cxx b/basic/source/classes/sb.cxx
index c24828a..2f5be56 100644
--- a/basic/source/classes/sb.cxx
+++ b/basic/source/classes/sb.cxx
@@ -24,6 +24,7 @@
 #include <tools/rcid.h>
 #include <tools/stream.hxx>
 #include <tools/errinf.hxx>
+#include <tools/solarmutex.hxx>
 #include <basic/sbx.hxx>
 #include <tools/rc.hxx>
 #include <vcl/svapp.hxx>
@@ -109,10 +110,22 @@ DocBasicItem::DocBasicItem( StarBASIC& rDocBasic ) :
 
 DocBasicItem::~DocBasicItem()
 {
-    SolarMutexGuard g;
+    // tdf#90969 HACK: don't use SolarMutexGuard - there is a horrible global
+    // map GaDocBasicItems holding instances, and these get deleted from exit
+    // handlers, when the SolarMutex is already dead
+    tools::SolarMutex::Acquire();
 
-    stopListening();
-    mxClassModules.Clear(); // release with SolarMutex locked
+    try
+    {
+        stopListening();
+        mxClassModules.Clear(); // release with SolarMutex locked
+    }
+    catch (...)
+    {
+        assert(false);
+    }
+
+    tools::SolarMutex::Release();
 }
 
 void DocBasicItem::clearDependingVarsOnDelete( StarBASIC& rDeletedBasic )
commit b1a7a81a7c9054584b0cd812456704e17f060352
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu May 7 14:37:36 2015 +0100

    Resolves: tdf#72007: on switching decks keep our left indent, don't assume 0
    
    Change-Id: I878c999611e1294d5107f1cf2c000d9ed5f88cb1
    (cherry picked from commit 4073afa350387f9fc9194347ad78c6cbdabbb812)
    
    Related: tdf#72007 align to right if undocked
    
    Change-Id: Ia0af0493e0af6c945006e6a1f6f918f7b104068d
    (cherry picked from commit 8b867887022903bc5788b01db51dfcec521dc878)
    Reviewed-on: https://gerrit.libreoffice.org/15689
    Reviewed-by: Adolfo Jayme Barrientos <fitojb at ubuntu.com>
    Tested-by: Adolfo Jayme Barrientos <fitojb at ubuntu.com>

diff --git a/sfx2/source/sidebar/SidebarController.cxx b/sfx2/source/sidebar/SidebarController.cxx
index 620bfeb..5f275ee 100644
--- a/sfx2/source/sidebar/SidebarController.cxx
+++ b/sfx2/source/sidebar/SidebarController.cxx
@@ -344,62 +344,33 @@ void SidebarController::NotifyResize (void)
     if (mpCurrentDeck)
     {
         SfxSplitWindow* pSplitWindow = GetSplitWindow();
-        if (pSplitWindow)   //in sidebar mode
+        WindowAlign eAlign = pSplitWindow ? pSplitWindow->GetAlign() : WINDOWALIGN_RIGHT;
+        long nDeckX, nTabX;
+        if (eAlign == WINDOWALIGN_LEFT)     // attach the Sidebar towards the left-side of screen
         {
-            // Find out that which side of the Window do we need to attach the Sidebar?
-            if ( pSplitWindow->GetAlign() == WINDOWALIGN_RIGHT )        // attach the Sidebar towards the right-side of screen
-            {
-                // Place the deck first.
-                {
-                    if (bIsDeckVisible)
-                    {
-                        mpCurrentDeck->setPosSizePixel(0,0, nWidth-nTabBarDefaultWidth, nHeight);
-                        mpCurrentDeck->Show();
-                        mpCurrentDeck->RequestLayout();
-                    }
-                    else
-                        mpCurrentDeck->Hide();
-                }
-
-                // Now place the tab bar.
-                mpTabBar->setPosSizePixel(nWidth-nTabBarDefaultWidth,0,nTabBarDefaultWidth,nHeight);
-                mpTabBar->Show();
-            }
-            else if ( pSplitWindow->GetAlign() == WINDOWALIGN_LEFT)     // attach the Sidebar towards the left-side of screen
-            {
-                // Place the tab bar first.
-                mpTabBar->setPosSizePixel(0,0,nTabBarDefaultWidth,nHeight);
-                mpTabBar->Show();
-
-                // Now place the deck.
-                if (bIsDeckVisible)
-                {
-                    mpCurrentDeck->setPosSizePixel(nTabBarDefaultWidth,0, nWidth-nTabBarDefaultWidth, nHeight);
-                    mpCurrentDeck->Show();
-                    mpCurrentDeck->RequestLayout();
-                }
-                else
-                    mpCurrentDeck->Hide();
-            }
+            nDeckX = nTabBarDefaultWidth;
+            nTabX = 0;
         }
-        else //floating window mode
+        else   // attach the Sidebar towards the right-side of screen
         {
-            // Place the deck first.
-            {
-                if (bIsDeckVisible)
-                {
-                    mpCurrentDeck->setPosSizePixel(0,0, nWidth-nTabBarDefaultWidth, nHeight);
-                    mpCurrentDeck->Show();
-                    mpCurrentDeck->RequestLayout();
-                }
-                else
-                    mpCurrentDeck->Hide();
-            }
+            nDeckX = 0;
+            nTabX = nWidth-nTabBarDefaultWidth;
+        }
 
-            // Now place the tab bar.
-            mpTabBar->setPosSizePixel(nWidth-nTabBarDefaultWidth,0,nTabBarDefaultWidth,nHeight);
-            mpTabBar->Show();
+        // Place the deck first.
+        if (bIsDeckVisible)
+        {
+            mpCurrentDeck->setPosSizePixel(nDeckX, 0, nWidth - nTabBarDefaultWidth, nHeight);
+            mpCurrentDeck->Show();
+            mpCurrentDeck->RequestLayout();
         }
+        else
+            mpCurrentDeck->Hide();
+
+        // Now place the tab bar.
+        mpTabBar->setPosSizePixel(nTabX, 0, nTabBarDefaultWidth, nHeight);
+        mpTabBar->Show();
+
     }
 
     // Determine if the closer of the deck can be shown.
@@ -693,11 +664,24 @@ void SidebarController::SwitchToDeck (
     }
     aNewPanels.resize(nWriteIndex);
 
+    SfxSplitWindow* pSplitWindow = GetSplitWindow();
+    sal_Int32 nTabBarDefaultWidth = TabBar::GetDefaultWidth() * mpTabBar->GetDPIScaleFactor();
+    WindowAlign eAlign = pSplitWindow ? pSplitWindow->GetAlign() : WINDOWALIGN_RIGHT;
+    long nDeckX;
+    if (eAlign == WINDOWALIGN_LEFT)     // attach the Sidebar towards the left-side of screen
+    {
+        nDeckX = nTabBarDefaultWidth;
+    }
+    else   // attach the Sidebar towards the right-side of screen
+    {
+        nDeckX = 0;
+    }
+
     // Activate the deck and the new set of panels.
     mpCurrentDeck->setPosSizePixel(
+        nDeckX,
         0,
-        0,
-        mpParentWindow->GetSizePixel().Width()-TabBar::GetDefaultWidth() * mpTabBar->GetDPIScaleFactor(),
+        mpParentWindow->GetSizePixel().Width() - nTabBarDefaultWidth,
         mpParentWindow->GetSizePixel().Height());
 
     mpCurrentDeck->SetPanels(aNewPanels);
commit 63e33aa0f46d775bcb8f696a3993b974808105aa
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri May 1 12:12:28 2015 +0100

    Resolves: tdf#90141 layout crash with table in footnote
    
    this also makes cloudon File_1308.docx not crash, which
    is the last outstanding crashtesting import failure
    
    Change-Id: I06867a1b06316c6dab62ebd8a55f3a02b57b9f31
    (cherry picked from commit 971adcd9e19e0bcab5855aae9be58d2203b46169)
    Reviewed-on: https://gerrit.libreoffice.org/15584
    Reviewed-by: Michael Stahl <mstahl at redhat.com>
    Tested-by: Michael Stahl <mstahl at redhat.com>

diff --git a/sw/source/core/layout/flowfrm.cxx b/sw/source/core/layout/flowfrm.cxx
index e9b05f9..255817a 100644
--- a/sw/source/core/layout/flowfrm.cxx
+++ b/sw/source/core/layout/flowfrm.cxx
@@ -1780,8 +1780,15 @@ bool SwFlowFrm::MoveFwd( bool bMakePage, bool bPageBreak, bool bMoveAlways )
 {
 //!!!!MoveFtnCntFwd might need to be updated as well.
     SwFtnBossFrm *pOldBoss = m_rThis.FindFtnBossFrm();
-    if ( m_rThis.IsInFtn() )
+    if (m_rThis.IsInFtn())
+    {
+        if (!m_rThis.IsCntntFrm())
+        {
+            SAL_WARN("sw.core", "Tables in footnotes are not truly supported");
+            return false;
+        }
         return static_cast<SwCntntFrm&>(m_rThis).MoveFtnCntFwd( bMakePage, pOldBoss );
+    }
 
     if( !IsFwdMoveAllowed() && !bMoveAlways )
     {
commit f6ea8e4313146b6011bc47f82d00c75985261cdb
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Apr 28 10:27:32 2015 +0100

    fix assert on re-export of fdo72640-6.docx to docx
    
    and hopefully loads more
    
    Change-Id: I04f9f757378e25191d7334bd52e418cf84bdf887
    (cherry picked from commit 11cac95f57c5e7836413a73667d74128c4afd3e7)
    Signed-off-by: Michael Stahl <mstahl at redhat.com>

diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx
index cacbe97..d6ad76d 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -6005,6 +6005,8 @@ void DocxAttributeOutput::NumberingLevel( sal_uInt8 nLevel,
         }
         m_rExport.OutputItemSet( *pOutSet, false, true, i18n::ScriptType::LATIN, m_rExport.mbExportModeRTF );
 
+        WriteCollectedRunProperties();
+
         m_pSerializer->endElementNS( XML_w, XML_rPr );
     }
 


More information about the Libreoffice-commits mailing list