From a0d2c2deebbe3a5d9cf1467548f4797a8fde5579 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Wed, 6 Nov 2013 09:30:13 +0100 Subject: [PATCH] start packaging 4.2.0 --- .gitignore | 6 + ...ake-charmap.cxx-compile-with-icu-4.4.patch | 138 --- ...4990-valgrind-reports-uninitialized-.patch | 209 ---- ...0712-wrong-default-font-shown-in-edi.patch | 134 --- ...070-display-1-means-span-all-display.patch | 463 -------- ...892-discard-impossible-languages-for.patch | 68 -- ...835-application-menu-for-LibreOffice.patch | 249 ---- ...13480-crash-in-EditLineList-operator.patch | 45 - ...15281-crash-on-clicking-custom-anima.patch | 38 - ...21915-force-menubar-menus-to-be-up-d.patch | 130 --- ...8892-force-render-full-grapheme-with.patch | 138 --- ...hbz-996162-apparent-NULL-bullet-font.patch | 34 - ...flow-assuming-signed-overflow-does-n.patch | 33 - ...r-formats-newly-supported-by-libmwaw.patch | 289 ----- 0001-do-not-build-LibreOffice_Test.patch | 27 - ...le-more-formats-supported-by-libmwaw.patch | 380 ------- ...-AggregatingCursor-must-wrap-modules.patch | 172 --- ...minate-no-extent-RSID-only-AUTOFMT-h.patch | 45 - ...ect-rendering-of-Devanagari-short-i-.patch | 98 -- ...o-56209-reviving-FilterFormulaParser.patch | 405 ------- ...cept-pt-in-addition-to-deprecated-pt.patch | 27 - ...u-as-a-right-click-popup-to-the-prev.patch | 239 ---- 0001-update-libmwaw-to-0.2.0.patch | 1002 ----------------- ...892-discard-impossible-languages-for.patch | 56 - libreoffice.spec | 141 +-- sources | 6 +- 26 files changed, 56 insertions(+), 4516 deletions(-) delete mode 100644 0001-Make-charmap.cxx-compile-with-icu-4.4.patch delete mode 100644 0001-Related-rhbz-1014990-valgrind-reports-uninitialized-.patch delete mode 100644 0001-Related-rhbz-1020712-wrong-default-font-shown-in-edi.patch delete mode 100644 0001-Related-rhbz-919070-display-1-means-span-all-display.patch delete mode 100644 0001-Related-rhbz-968892-discard-impossible-languages-for.patch delete mode 100644 0001-Resolves-fdo-48835-application-menu-for-LibreOffice.patch delete mode 100644 0001-Resolves-rhbz-1013480-crash-in-EditLineList-operator.patch delete mode 100644 0001-Resolves-rhbz-1015281-crash-on-clicking-custom-anima.patch delete mode 100644 0001-Resolves-rhbz-1021915-force-menubar-menus-to-be-up-d.patch delete mode 100644 0001-Resolves-rhbz-968892-force-render-full-grapheme-with.patch delete mode 100644 0001-Resolves-rhbz-996162-apparent-NULL-bullet-font.patch delete mode 100644 0001-WaE-Wstrict-overflow-assuming-signed-overflow-does-n.patch delete mode 100644 0001-add-config.-for-formats-newly-supported-by-libmwaw.patch delete mode 100644 0001-do-not-build-LibreOffice_Test.patch delete mode 100644 0001-enable-more-formats-supported-by-libmwaw.patch delete mode 100644 0001-fdo-67725-unoidl-AggregatingCursor-must-wrap-modules.patch delete mode 100644 0001-fdo-70201-sw-eliminate-no-extent-RSID-only-AUTOFMT-h.patch delete mode 100644 0001-fdo-70968-Incorrect-rendering-of-Devanagari-short-i-.patch delete mode 100644 0001-resolved-fdo-56209-reviving-FilterFormulaParser.patch delete mode 100644 0001-rhbz-1031989-Accept-pt-in-addition-to-deprecated-pt.patch delete mode 100644 0001-select-sheet-menu-as-a-right-click-popup-to-the-prev.patch delete mode 100644 0001-update-libmwaw-to-0.2.0.patch delete mode 100644 0002-Related-rhbz-968892-discard-impossible-languages-for.patch diff --git a/.gitignore b/.gitignore index 60cd0c3..20e416c 100644 --- a/.gitignore +++ b/.gitignore @@ -57,3 +57,9 @@ /libreoffice-4.1.3.2.tar.xz /libreoffice-help-4.1.3.2.tar.xz /libreoffice-translations-4.1.3.2.tar.xz +/libreoffice-4.2.0.0.alpha1.tar.xz +/libreoffice-help-4.2.0.0.alpha1.tar.xz +/libreoffice-translations-4.2.0.0.alpha1.tar.xz +/libreoffice-4.2.0.0.beta1.tar.xz +/libreoffice-help-4.2.0.0.beta1.tar.xz +/libreoffice-translations-4.2.0.0.beta1.tar.xz diff --git a/0001-Make-charmap.cxx-compile-with-icu-4.4.patch b/0001-Make-charmap.cxx-compile-with-icu-4.4.patch deleted file mode 100644 index b4f5f3e..0000000 --- a/0001-Make-charmap.cxx-compile-with-icu-4.4.patch +++ /dev/null @@ -1,138 +0,0 @@ -From 163116da07b5b277b9f0489e2542fac6eef43cc9 Mon Sep 17 00:00:00 2001 -From: Mark Wielaard -Date: Fri, 31 May 2013 00:10:58 +0200 -Subject: [PATCH] Make charmap.cxx compile with icu >= 4.4. -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -configure.ac claims ICU >= 4.2 is supported. Make it so. - -Change-Id: Ia08bb492f41dcb88bc84550edb51ce5e89fe1103 -Reviewed-on: https://gerrit.libreoffice.org/4112 -Reviewed-by: Caolán McNamara -Tested-by: Caolán McNamara -(cherry picked from commit 30c3032920be91741ab089966f7e458ce08d09a4) ---- - i18npool/qa/cppunit/test_breakiterator.cxx | 4 +++- - i18nutil/source/utility/unicode.cxx | 6 +++--- - svx/source/dialog/charmap.cxx | 5 +++++ - sw/source/core/text/porlay.cxx | 4 ++++ - 4 files changed, 15 insertions(+), 4 deletions(-) - -diff --git a/i18npool/qa/cppunit/test_breakiterator.cxx b/i18npool/qa/cppunit/test_breakiterator.cxx -index 41e4077..b121f6d 100644 ---- a/i18npool/qa/cppunit/test_breakiterator.cxx -+++ b/i18npool/qa/cppunit/test_breakiterator.cxx -@@ -16,7 +16,7 @@ - #include - #include - --#include -+#include - - #include - #include -@@ -233,6 +233,8 @@ void TestBreakIterator::testWordBoundaries() - } - - //See https://bugs.freedesktop.org/show_bug.cgi?id=49629 -+ //Note that the breakiterator test will fail on older icu versions -+ //(4.2.1) for the 200B (ZWSP) Zero Width Space testcase. - sal_Unicode aBreakTests[] = { ' ', 1, 2, 3, 4, 5, 6, 7, 0x91, 0x92, 0x200B, 0xE8FF, 0xF8FF }; - for (int mode = i18n::WordType::ANY_WORD; mode <= i18n::WordType::WORD_COUNT; ++mode) - { -diff --git a/i18nutil/source/utility/unicode.cxx b/i18nutil/source/utility/unicode.cxx -index 2c2dd42..b46a7f6 100644 ---- a/i18nutil/source/utility/unicode.cxx -+++ b/i18nutil/source/utility/unicode.cxx -@@ -826,6 +826,9 @@ OString SAL_CALL unicode::getExemplerLanguageForUScriptCode(UScriptCode eScript) - case USCRIPT_TAI_VIET: - sRet = "blt"; - break; -+ case USCRIPT_MANDAEAN: /* Aliased to USCRIPT_MANDAIC in icu 4.6. */ -+ sRet = "mic"; -+ break; - #if (U_ICU_VERSION_MAJOR_NUM > 4) || (U_ICU_VERSION_MAJOR_NUM == 4 && U_ICU_VERSION_MINOR_NUM >= 4) - case USCRIPT_NABATAEAN: //no language with an assigned code yet - sRet = "mis"; -@@ -833,9 +836,6 @@ OString SAL_CALL unicode::getExemplerLanguageForUScriptCode(UScriptCode eScript) - case USCRIPT_PALMYRENE: //no language with an assigned code yet - sRet = "mis"; - break; -- case USCRIPT_MANDAIC: -- sRet = "mic"; -- break; - case USCRIPT_BAMUM: - sRet = "bax"; - break; -diff --git a/svx/source/dialog/charmap.cxx b/svx/source/dialog/charmap.cxx -index 82239d8..be165f8 100644 ---- a/svx/source/dialog/charmap.cxx -+++ b/svx/source/dialog/charmap.cxx -@@ -1302,6 +1302,7 @@ void SubsetMap::InitList() - case UBLOCK_DOMINO_TILES: - aAllSubsets.push_back( Subset( 0x1F030, 0x1F09F, RID_SUBSETSTR_DOMINO_TILES ) ); - break; -+#if (U_ICU_VERSION_MAJOR_NUM > 4) || (U_ICU_VERSION_MAJOR_NUM == 4 && U_ICU_VERSION_MINOR_NUM >= 4) - case UBLOCK_SAMARITAN: - aAllSubsets.push_back( Subset( 0x0800, 0x083F, RID_SUBSETSTR_SAMARITAN ) ); - break; -@@ -1380,6 +1381,8 @@ void SubsetMap::InitList() - case UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C: - aAllSubsets.push_back( Subset( 0x2A700, 0x2B73F, RID_SUBSETSTR_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C ) ); - break; -+#endif -+#if (U_ICU_VERSION_MAJOR_NUM > 4) || (U_ICU_VERSION_MAJOR_NUM == 4 && U_ICU_VERSION_MINOR_NUM >= 6) - case UBLOCK_MANDAIC: - aAllSubsets.push_back( Subset( 0x0840, 0x085F, RID_SUBSETSTR_MANDAIC ) ); - break; -@@ -1416,6 +1419,8 @@ void SubsetMap::InitList() - case UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D: - aAllSubsets.push_back( Subset( 0x2B740, 0x2B81F, RID_SUBSETSTR_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D ) ); - break; -+#endif -+// Note ICU version 49 (NOT 4.9), so the MAJOR_NUM is two digits. - #if U_ICU_VERSION_MAJOR_NUM >= 49 - case UBLOCK_ARABIC_EXTENDED_A: - aAllSubsets.push_back( Subset( 0x08A0, 0x08FF, RID_SUBSETSTR_ARABIC_EXTENDED_A ) ); -diff --git a/sw/source/core/text/porlay.cxx b/sw/source/core/text/porlay.cxx -index b820b8b..edc8458 100644 ---- a/sw/source/core/text/porlay.cxx -+++ b/sw/source/core/text/porlay.cxx -@@ -72,7 +72,11 @@ using namespace i18n::ScriptType; - #define isRehChar(c) IS_JOINING_GROUP((c), REH) - #define isTehMarbutaChar(c) IS_JOINING_GROUP((c), TEH_MARBUTA) - #define isWawChar(c) IS_JOINING_GROUP((c), WAW) -+#if (U_ICU_VERSION_MAJOR_NUM > 4) || (U_ICU_VERSION_MAJOR_NUM == 4 && U_ICU_VERSION_MINOR_NUM >= 4) - #define isYehChar(c) (IS_JOINING_GROUP((c), YEH) || IS_JOINING_GROUP((c), FARSI_YEH)) -+#else -+#define isYehChar(c) IS_JOINING_GROUP((c), YEH) -+#endif - #define isSeenOrSadChar(c) (IS_JOINING_GROUP((c), SAD) || IS_JOINING_GROUP((c), SEEN)) - - bool isTransparentChar ( sal_Unicode cCh ) -diff --git a/i18npool/qa/cppunit/test_breakiterator.cxx b/i18npool/qa/cppunit/test_breakiterator.cxx ---- a/i18npool/qa/cppunit/test_breakiterator.cxx -+++ b/i18npool/qa/cppunit/test_breakiterator.cxx -@@ -233,14 +233,18 @@ - } - - //See https://bugs.freedesktop.org/show_bug.cgi?id=49629 -- //Note that the breakiterator test will fail on older icu versions -- //(4.2.1) for the 200B (ZWSP) Zero Width Space testcase. - sal_Unicode aBreakTests[] = { ' ', 1, 2, 3, 4, 5, 6, 7, 0x91, 0x92, 0x200B, 0xE8FF, 0xF8FF }; - for (int mode = i18n::WordType::ANY_WORD; mode <= i18n::WordType::WORD_COUNT; ++mode) - { - //make sure that in all cases isBeginWord and isEndWord matches getWordBoundary - for (size_t i = 0; i < SAL_N_ELEMENTS(aBreakTests); ++i) - { -+#if (U_ICU_VERSION_MAJOR_NUM == 4) && (U_ICU_VERSION_MINOR_NUM <= 2) -+ //Note the breakiterator test is known to fail on older icu -+ //versions (4.2.1) for the 200B (ZWSP) Zero Width Space testcase. -+ if (aBreakTests[i] == 0x200B) -+ continue; -+#endif - OUString aTest("Word"); - aTest += OUString(aBreakTests[i]) + OUString("Word"); - aBounds = m_xBreak->getWordBoundary(aTest, 0, aLocale, mode, true); diff --git a/0001-Related-rhbz-1014990-valgrind-reports-uninitialized-.patch b/0001-Related-rhbz-1014990-valgrind-reports-uninitialized-.patch deleted file mode 100644 index 8affec9..0000000 --- a/0001-Related-rhbz-1014990-valgrind-reports-uninitialized-.patch +++ /dev/null @@ -1,209 +0,0 @@ -From 82bce2c10fe5718a3a51125ce0c284c13315d00d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Fri, 15 Nov 2013 17:06:21 +0000 -Subject: [PATCH] Related: rhbz#1014990 valgrind reports uninitialized variable - -(cherry picked from commit f3660062ce8a2c65d483b83c2800d9b958d12f08) - -Conflicts: - sd/source/filter/eppt/epptbase.hxx - -Change-Id: Ibaa2ed0ee2f1f3f00bceec91ccced968e4913e47 - -Related: rhbz#1014990 valgrind reports uninitialized another variable - -Change-Id: I77f082ea145b0f20daa93c3ee04067ecb6c3b108 -(cherry picked from commit b7069ad07dc651f5326cd3a671588d8c1ecf2534) - -Related: rhbz#1014990 valgrind reports yet another uninitialized variable - -Change-Id: Idf15ee825a34aa7788c422475aa6cea8ff802581 -(cherry picked from commit e0840f70565062b712e544f952640ee35cfb6a27) - -Related: rhbz#1014990 valgrind reports yet another unint variable - -Change-Id: Idf6a0a1e12fffee6c090add41247723f1d9cf576 -(cherry picked from commit b211b8b2e14bd961a7b32033468a94cbff52b5c4) -Reviewed-on: https://gerrit.libreoffice.org/6712 -Reviewed-by: Michael Stahl -Tested-by: Michael Stahl ---- - sd/source/filter/eppt/epptbase.hxx | 3 +++ - sd/source/filter/eppt/pptx-stylesheet.cxx | 4 +-- - sd/source/filter/eppt/pptx-text.cxx | 41 +++++++++++++++++++++++-------- - sd/source/filter/eppt/text.hxx | 28 +++++++++++++-------- - vcl/source/filter/wmf/emfwr.cxx | 19 ++++++-------- - 5 files changed, 62 insertions(+), 33 deletions(-) - -diff --git a/sd/source/filter/eppt/epptbase.hxx b/sd/source/filter/eppt/epptbase.hxx -index f84360d..2566b98 100644 ---- a/sd/source/filter/eppt/epptbase.hxx -+++ b/sd/source/filter/eppt/epptbase.hxx -@@ -157,6 +157,9 @@ struct FontCollectionEntry - - FontCollectionEntry( const String& rName ) : - Scaling ( 1.0 ), -+ Family ( 0 ), -+ Pitch ( 0 ), -+ CharSet ( 0 ), - Original( rName ) - { - ImplInit( rName ); -diff --git a/sd/source/filter/eppt/pptx-stylesheet.cxx b/sd/source/filter/eppt/pptx-stylesheet.cxx -index d9fd8fd..24e98f1 100644 ---- a/sd/source/filter/eppt/pptx-stylesheet.cxx -+++ b/sd/source/filter/eppt/pptx-stylesheet.cxx -@@ -286,8 +286,8 @@ void PPTExParaSheet::SetStyleSheet( const ::com::sun::star::uno::Reference< ::co - - if ( !nLevel ) - { -- if ( ( aParagraphObj.meBullet == ::com::sun::star::beans::PropertyState_DIRECT_VALUE ) -- && aParagraphObj.bExtendedParameters ) -+ if (aParagraphObj.bExtendedParameters && -+ aParagraphObj.meBullet == ::com::sun::star::beans::PropertyState_DIRECT_VALUE) - { - for ( sal_Int16 i = 0; i < 5; i++ ) - { -diff --git a/sd/source/filter/eppt/pptx-text.cxx b/sd/source/filter/eppt/pptx-text.cxx -index adadc44..cc0c769 100644 ---- a/sd/source/filter/eppt/pptx-text.cxx -+++ b/sd/source/filter/eppt/pptx-text.cxx -@@ -628,10 +628,21 @@ PortionObj& PortionObj::operator=( const PortionObj& rPortionObj ) - return *this; - } - --ParagraphObj::ParagraphObj( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & rXPropSet, -- PPTExBulletProvider& rProv ) : -- maMapModeSrc ( MAP_100TH_MM ), -- maMapModeDest ( MAP_INCH, Point(), Fraction( 1, 576 ), Fraction( 1, 576 ) ) -+ParagraphObj::ParagraphObj(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & rXPropSet, -+ PPTExBulletProvider& rProv) -+ : maMapModeSrc(MAP_100TH_MM) -+ , maMapModeDest(MAP_INCH, Point(), Fraction( 1, 576 ), Fraction( 1, 576 )) -+ , mnTextSize(0) -+ , mbFirstParagraph(false) -+ , mbLastParagraph(false) -+ , mnTextAdjust(0) -+ , mnLineSpacing(0) -+ , mbFixedLineSpacing(false) -+ , mnLineSpacingTop(0) -+ , mnLineSpacingBottom(0) -+ , mbForbiddenRules(false) -+ , mbParagraphPunctation(false) -+ , mnBiDi(0) - { - mXPropSet = rXPropSet; - -@@ -644,12 +655,22 @@ ParagraphObj::ParagraphObj( const ::com::sun::star::uno::Reference< ::com::sun:: - ImplGetParagraphValues( rProv, sal_False ); - } - -- ParagraphObj::ParagraphObj( ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextContent > & rXTextContent, -- ParaFlags aParaFlags, FontCollection& rFontCollection, PPTExBulletProvider& rProv ) : -- maMapModeSrc ( MAP_100TH_MM ), -- maMapModeDest ( MAP_INCH, Point(), Fraction( 1, 576 ), Fraction( 1, 576 ) ), -- mbFirstParagraph ( aParaFlags.bFirstParagraph ), -- mbLastParagraph ( aParaFlags.bLastParagraph ) -+ParagraphObj::ParagraphObj(::com::sun::star::uno::Reference< ::com::sun::star::text::XTextContent > & rXTextContent, -+ ParaFlags aParaFlags, FontCollection& rFontCollection, PPTExBulletProvider& rProv ) -+ : maMapModeSrc(MAP_100TH_MM) -+ , maMapModeDest(MAP_INCH, Point(), Fraction( 1, 576 ), Fraction( 1, 576 )) -+ , mnTextSize(0) -+ , mbIsBullet(false) -+ , mbFirstParagraph( aParaFlags.bFirstParagraph ) -+ , mbLastParagraph( aParaFlags.bLastParagraph ) -+ , mnTextAdjust(0) -+ , mnLineSpacing(0) -+ , mbFixedLineSpacing(false) -+ , mnLineSpacingTop(0) -+ , mnLineSpacingBottom(0) -+ , mbForbiddenRules(false) -+ , mbParagraphPunctation(false) -+ , mnBiDi(0) - { - bExtendedParameters = sal_False; - -diff --git a/sd/source/filter/eppt/text.hxx b/sd/source/filter/eppt/text.hxx -index 06bc4e0..c60ae43 100644 ---- a/sd/source/filter/eppt/text.hxx -+++ b/sd/source/filter/eppt/text.hxx -@@ -26,6 +26,7 @@ - #include - #include - #include -+#include - - #include - -@@ -62,17 +63,24 @@ struct SOParagraph - sal_Bool bNumberingIsNumber; - - SOParagraph() -+ : bExtendedParameters(false) -+ , nParaFlags(0) -+ , nBulletFlags(0) -+ , nNumberingType(SVX_NUM_NUMBER_NONE) -+ , nHorzAdjust(0) -+ , nBulletColor(0) -+ , nBulletOfs(0) -+ , nStartWith(0) -+ , nTextOfs(0) -+ , nBulletRealSize(0) -+ , nDepth(0) -+ , cBulletId(0) -+ , bExtendedBulletsUsed(false) -+ , nBulletId(0xffff) -+ , nMappedNumType(0) -+ , bNumberingIsNumber(true) - { -- nDepth = 0; -- bExtendedParameters = sal_False; -- nParaFlags = 0; -- nBulletFlags = 0; -- nBulletOfs = 0; -- nTextOfs = 0; -- bExtendedBulletsUsed = sal_False; -- nBulletId = 0xffff; -- bNumberingIsNumber = sal_True; -- }; -+ } - }; - - class PropStateValue : public PropValue -diff --git a/vcl/source/filter/wmf/emfwr.cxx b/vcl/source/filter/wmf/emfwr.cxx -index e4e3e51..841aa98 100644 ---- a/vcl/source/filter/wmf/emfwr.cxx -+++ b/vcl/source/filter/wmf/emfwr.cxx -@@ -282,21 +282,18 @@ sal_Bool EMFWriter::WriteEMF( const GDIMetaFile& rMtf, FilterConfigItem* pFilter - { - const sal_uLong nHeaderPos = m_rStm.Tell(); - -- mpHandlesUsed = new sal_Bool[ MAXHANDLES ]; -- memset( mpHandlesUsed, 0, MAXHANDLES * sizeof( sal_Bool ) ); -- mnHorTextAlign = mnHandleCount = mnLastPercent = mnRecordPos = mnRecordCount = 0; -- mnRecordPlusPos = 0; -- mnLineHandle = mnFillHandle = mnTextHandle = HANDLE_INVALID; -- mbRecordOpen = sal_False; -- mbRecordPlusOpen = false; -- -- - maVDev.EnableOutput( sal_False ); - maVDev.SetMapMode( rMtf.GetPrefMapMode() ); -- mpFilterConfigItem = pFilterConfigItem; -- - // don't work with pixel as destination map mode -> higher resolution preferrable - maDestMapMode.SetMapUnit( MAP_100TH_MM ); -+ mpFilterConfigItem = pFilterConfigItem; -+ mpHandlesUsed = new sal_Bool[ MAXHANDLES ]; -+ memset( mpHandlesUsed, 0, MAXHANDLES * sizeof( sal_Bool ) ); -+ mnHandleCount = mnLastPercent = mnRecordCount = mnRecordPos = mnRecordPlusPos = 0; -+ mbRecordOpen = mbRecordPlusOpen = false; -+ mbLineChanged = mbFillChanged = mbTextChanged = false; -+ mnLineHandle = mnFillHandle = mnTextHandle = HANDLE_INVALID; -+ mnHorTextAlign = 0; - - const Size aMtfSizePix( maVDev.LogicToPixel( rMtf.GetPrefSize(), rMtf.GetPrefMapMode() ) ); - const Size aMtfSizeLog( maVDev.LogicToLogic( rMtf.GetPrefSize(), rMtf.GetPrefMapMode(), MAP_100TH_MM ) ); --- -1.8.3.1 - diff --git a/0001-Related-rhbz-1020712-wrong-default-font-shown-in-edi.patch b/0001-Related-rhbz-1020712-wrong-default-font-shown-in-edi.patch deleted file mode 100644 index fc4ae38..0000000 --- a/0001-Related-rhbz-1020712-wrong-default-font-shown-in-edi.patch +++ /dev/null @@ -1,134 +0,0 @@ -From e3bde35198d8a5420b7106c983766b88ccfba51a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Fri, 18 Oct 2013 15:36:28 +0100 -Subject: [PATCH] Related: rhbz#1020712 wrong default font shown in editengine - -Only in editengine could we have this fiasco. - -There are two ImpEditEngine::GetScriptType's - -a) sal_uInt16 ImpEditEngine::GetScriptType(const EditPaM& rPaM, sal_uInt16* pEndPos) const -this one returns i18n::ScriptType - -b) sal_uInt16 ImpEditEngine::GetScriptType(const EditSelection& rSel) const -this one returns SCRIPTTYPE - -Could there be a better way to ensure that mistakes will be made. - -Anyway, within variant b, with an empty edit engine -ImpEditEngine::GetScriptType calls GetI18NScriptTypeOfLanguage but *that* -returns i18n::ScriptType's not SCRIPTTYPEs but when there is content then a -SCRIPTTYPE is truly returned. - -Change-Id: I3a4a7c8746728e0fdfb25d961004c8339a24c93d -(cherry picked from commit e63a0d5657c7b9c7431525ba669b3edab0e56af3) - -Related: rhbz#1020712 more i18n::ScriptType being compared against SCRIPTTYPE - -Change-Id: I5da9114a3fd8330df2b63dc9187323765d305791 -(cherry picked from commit b57ffef61afd61b57087150b1a9245e21079e15b) - -Resolves: rhbz#1020712 return all the selected scripts - -What we want here is *all* the scripts in the range, that's the whole point of -using SCRIPTTYPE. We use this to determine the font to show in the fontbox. If -it's an exclusive script then we can show the font that that script, and if -there are multiple scripts we know to set it empty. - -With the other intermediate bugs out of the way, this now appears to work -correctly. - -(cherry picked from commit f1a8aefec91f51a15c951f53f283a38a2edcd141) - -Conflicts: - editeng/source/editeng/impedit2.cxx - -Change-Id: I58426123602d70c151bd878e96fa5cbab7d3fd3e ---- - editeng/source/editeng/impedit2.cxx | 39 ++++++++++++++++++++----------------- - editeng/source/editeng/impedit4.cxx | 4 ++-- - 2 files changed, 23 insertions(+), 20 deletions(-) - -diff --git a/editeng/source/editeng/impedit2.cxx b/editeng/source/editeng/impedit2.cxx -index 4bc6d70..21d0d32 100644 ---- a/editeng/source/editeng/impedit2.cxx -+++ b/editeng/source/editeng/impedit2.cxx -@@ -1788,32 +1788,35 @@ sal_uInt16 ImpEditEngine::GetScriptType( const EditSelection& rSel ) const - - const ScriptTypePosInfos& rTypes = pParaPortion->aScriptInfos; - -- // find the first(!) script type position that holds the -- // complete selection. Thus it will work for selections as -- // well as with just moving the cursor from char to char. -+ // find all the scripts of this range - sal_uInt16 nS = ( nPara == nStartPara ) ? aSel.Min().GetIndex() : 0; - sal_uInt16 nE = ( nPara == nEndPara ) ? aSel.Max().GetIndex() : pParaPortion->GetNode()->Len(); -- for ( size_t n = 0; n < rTypes.size(); n++ ) -+ -+ //no selection, just bare cursor -+ if (nStartPara == nEndPara && nS == nE) - { -- if (rTypes[n].nStartPos <= nS && nE <= rTypes[n].nEndPos) -- { -+ //If we are not at the start of the paragraph we want the properties of the -+ //preceding character. Otherwise get the properties of the next (or what the -+ //next would have if it existed) -+ if (nS != 0) -+ --nS; -+ else -+ ++nE; -+ } -+ -+ for (size_t n = 0; n < rTypes.size(); ++n) -+ { -+ bool bStartInRange = rTypes[n].nStartPos <= nS && nS < rTypes[n].nEndPos; -+ bool bEndInRange = rTypes[n].nStartPos < nE && nE <= rTypes[n].nEndPos; -+ -+ if (bStartInRange || bEndInRange) -+ { - if ( rTypes[n].nScriptType != i18n::ScriptType::WEAK ) -- { - nScriptType |= GetItemScriptType ( rTypes[n].nScriptType ); -- } -- else -- { -- if ( !nScriptType && n ) -- { -- // #93548# When starting with WEAK, use prev ScriptType... -- nScriptType = rTypes[n-1].nScriptType; -- } -- } -- break; - } - } - } -- return nScriptType ? nScriptType : GetI18NScriptTypeOfLanguage( GetDefaultLanguage() ); -+ return nScriptType ? nScriptType : SvtLanguageOptions::GetScriptTypeOfLanguage( GetDefaultLanguage() ); - } - - sal_Bool ImpEditEngine::IsScriptChange( const EditPaM& rPaM ) const -diff --git a/editeng/source/editeng/impedit4.cxx b/editeng/source/editeng/impedit4.cxx -index 39e8156..5e0fa09 100644 ---- a/editeng/source/editeng/impedit4.cxx -+++ b/editeng/source/editeng/impedit4.cxx -@@ -2124,7 +2124,7 @@ void ImpEditEngine::ApplyChangedSentence(EditView& rEditView, - rEditView.pImpEditView->SetEditSelection( aCurrentOldPosition->Max() ); - } - -- sal_uInt16 nScriptType = GetI18NScriptTypeOfLanguage( aCurrentNewPortion->eLanguage ); -+ sal_uInt16 nScriptType = SvtLanguageOptions::GetScriptTypeOfLanguage( aCurrentNewPortion->eLanguage ); - sal_uInt16 nLangWhichId = EE_CHAR_LANGUAGE; - switch(nScriptType) - { -@@ -2171,7 +2171,7 @@ void ImpEditEngine::ApplyChangedSentence(EditView& rEditView, - LanguageType eCurLanguage = GetLanguage( aCurrentPaM ); - if(eCurLanguage != aCurrentNewPortion->eLanguage) - { -- sal_uInt16 nScriptType = GetI18NScriptTypeOfLanguage( aCurrentNewPortion->eLanguage ); -+ sal_uInt16 nScriptType = SvtLanguageOptions::GetScriptTypeOfLanguage( aCurrentNewPortion->eLanguage ); - sal_uInt16 nLangWhichId = EE_CHAR_LANGUAGE; - switch(nScriptType) - { --- -1.8.3.1 - diff --git a/0001-Related-rhbz-919070-display-1-means-span-all-display.patch b/0001-Related-rhbz-919070-display-1-means-span-all-display.patch deleted file mode 100644 index 817b1e0..0000000 --- a/0001-Related-rhbz-919070-display-1-means-span-all-display.patch +++ /dev/null @@ -1,463 +0,0 @@ -From eb27eda272dd9fe6dfa4ebcfef24069bd117e5b3 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Fri, 18 Oct 2013 10:04:45 +0100 -Subject: [PATCH] Related: rhbz#919070 display -1 means span all displays - -So try to set size to full "screen" size. most window managers -will ignore this however unless _NET_WM_FULLSCREEN_MONITORS is -set, Under gtk3 we can use gdk_window_set_fullscreen_mode to -do that. Its effectively impractical for LibreOffice to itself -calculate the right parameters for _NET_WM_FULLSCREEN_MONITORS -as far as I can see - -Change-Id: Ia725f21048bfcec3dbf1478b4303ccd9cfec0b36 -(cherry picked from commit a8dd794356cb62480b2dc12504ad9e0158a0b583) - -Resolves: rhbz#919070 offload set span-all-displays to a gtk3 utility - -Jaw dropping hack to set a slideshow to span all -monitors if gtk3 is available at runtime - -(cherry picked from commit 14bb85e0a3d95419c484bfa23881f03c54031c5d) - -Conflicts: - Repository.mk - -Change-Id: I363f63c9855d5cb1f92d65d0b34add0c60f7263c - -missing .mk - -Change-Id: I923153579d6cc50354450a5b3a55ecc133ae5e41 -(cherry picked from commit 2d3dd8594ee3e43fcf9a65887f90d187a4393297) - -move xid-fullscreen into gnome package - -Change-Id: I2ad0838a12ce06b2c6e77b7f55cdc2cd0627a38b -(cherry picked from commit 9c1170b25a9fab13084d2677aa4fc986db5ab675) - -pScreen uninitialized - -Change-Id: I244c3b5a949ae5c8a5bf46d1b58439e080b2c848 -(cherry picked from commit 1b4aa55ecd7b2c3f6e0d281642d0ed0a066dec69) ---- - Repository.mk | 3 + - scp2/source/gnome/module_gnome.scp | 3 +- - scp2/source/ooo/file_library_ooo.scp | 10 ++ - vcl/Executable_xid_fullscreen_on_all_monitors.mk | 20 +++ - vcl/Module_vcl.mk | 1 + - vcl/inc/unx/gtk/gtkframe.hxx | 1 + - vcl/unx/gtk/window/gtksalframe.cxx | 134 ++++++++++++++++----- - .../gtk/window/xid_fullscreen_on_all_monitors.c | 99 +++++++++++++++ - 8 files changed, 243 insertions(+), 28 deletions(-) - create mode 100644 vcl/Executable_xid_fullscreen_on_all_monitors.mk - create mode 100644 vcl/unx/gtk/window/xid_fullscreen_on_all_monitors.c - -diff --git a/Repository.mk b/Repository.mk -index e0d4d7c..99278bc 100644 ---- a/Repository.mk -+++ b/Repository.mk -@@ -89,6 +89,9 @@ endif - $(eval $(call gb_Helper_register_executables,OOO, \ - gnome-open-url.bin \ - spadmin.bin \ -+ $(if $(filter $(GUIBASE)$(ENABLE_GTK),unxTRUE), \ -+ xid-fullscreen-on-all-monitors \ -+ ) \ - $(if $(filter $(GUIBASE)$(ENABLE_TDE),unxTRUE), \ - tdefilepicker \ - ) \ -diff --git a/scp2/source/gnome/module_gnome.scp b/scp2/source/gnome/module_gnome.scp -index e8a22bf..75214d5 100644 ---- a/scp2/source/gnome/module_gnome.scp -+++ b/scp2/source/gnome/module_gnome.scp -@@ -34,7 +34,8 @@ Module gid_Module_Optional_Gnome - gid_File_Share_Registry_Gnome_Xcd, - #endif - gid_File_Bin_Gnome_Open_Url, -- gid_File_Bin_Gnome_Open_Url_Bin -+ gid_File_Bin_Gnome_Open_Url_Bin, -+ gid_File_Bin_XidFullscreen - ); - End - -diff --git a/scp2/source/ooo/file_library_ooo.scp b/scp2/source/ooo/file_library_ooo.scp -index 36ec8d4..417f483 100644 ---- a/scp2/source/ooo/file_library_ooo.scp -+++ b/scp2/source/ooo/file_library_ooo.scp -@@ -343,6 +343,16 @@ File gid_File_Bin_KdeFilePicker - Name = "kdefilepicker"; - End - #endif -+ -+#ifdef ENABLE_GTK -+File gid_File_Bin_XidFullscreen -+ BIN_FILE_BODY; -+ Styles = (PACKED); -+ Dir = gid_Brand_Dir_Program; -+ Name = "xid-fullscreen-on-all-monitors"; -+End -+#endif -+ - #endif - - #ifdef MACOSX -diff --git a/vcl/Executable_xid_fullscreen_on_all_monitors.mk b/vcl/Executable_xid_fullscreen_on_all_monitors.mk -new file mode 100644 -index 0000000..5f9c127 ---- /dev/null -+++ b/vcl/Executable_xid_fullscreen_on_all_monitors.mk -@@ -0,0 +1,20 @@ -+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- -+# -+# This file is part of the LibreOffice project. -+# -+# This Source Code Form is subject to the terms of the Mozilla Public -+# License, v. 2.0. If a copy of the MPL was not distributed with this -+# file, You can obtain one at http://mozilla.org/MPL/2.0/. -+# -+ -+$(eval $(call gb_Executable_Executable,xid-fullscreen-on-all-monitors)) -+ -+$(eval $(call gb_Executable_add_libs,xid-fullscreen-on-all-monitors,\ -+ -ldl \ -+)) -+ -+$(eval $(call gb_Executable_add_cobjects,xid-fullscreen-on-all-monitors,\ -+ vcl/unx/gtk/window/xid_fullscreen_on_all_monitors \ -+)) -+ -+# vim: set noet sw=4 ts=4: -diff --git a/vcl/Module_vcl.mk b/vcl/Module_vcl.mk -index fd2be4c5..47031b3 100644 ---- a/vcl/Module_vcl.mk -+++ b/vcl/Module_vcl.mk -@@ -39,6 +39,7 @@ $(eval $(call gb_Module_add_targets,vcl,\ - - ifneq ($(ENABLE_GTK),) - $(eval $(call gb_Module_add_targets,vcl,\ -+ Executable_xid_fullscreen_on_all_monitors \ - Library_vclplug_gtk \ - )) - endif -diff --git a/vcl/inc/unx/gtk/gtkframe.hxx b/vcl/inc/unx/gtk/gtkframe.hxx -index c3ea919..3edd2cb 100644 ---- a/vcl/inc/unx/gtk/gtkframe.hxx -+++ b/vcl/inc/unx/gtk/gtkframe.hxx -@@ -196,6 +196,7 @@ class GtkSalFrame : public SalFrame - guint m_nGSMCookie; - int m_nWorkArea; - bool m_bFullscreen; -+ bool m_bSpanMonitorsWhenFullscreen; - bool m_bDefaultPos; - bool m_bDefaultSize; - bool m_bSendModChangeOnRelease; -diff --git a/vcl/unx/gtk/window/gtksalframe.cxx b/vcl/unx/gtk/window/gtksalframe.cxx -index fef8407..4a3d01c 100644 ---- a/vcl/unx/gtk/window/gtksalframe.cxx -+++ b/vcl/unx/gtk/window/gtksalframe.cxx -@@ -29,6 +29,9 @@ - #include - #include - #include -+#include -+#include -+#include - #include - #include - #include -@@ -814,6 +819,7 @@ void GtkSalFrame::InitCommon() - m_pCurrentCursor = NULL; - m_nKeyModifiers = 0; - m_bFullscreen = false; -+ m_bSpanMonitorsWhenFullscreen = false; - m_nState = GDK_WINDOW_STATE_WITHDRAWN; - m_nVisibility = GDK_VISIBILITY_FULLY_OBSCURED; - m_bSendModChangeOnRelease = false; -@@ -2045,43 +2051,68 @@ void GtkSalFrame::SetScreen( unsigned int nNewScreen, int eType, Rectangle *pSiz - if (maGeometry.nDisplayScreenNumber == nNewScreen && eType == SET_RETAIN_SIZE) - return; - -- gint nMonitor; -- bool bSameMonitor = false; -- GdkScreen *pScreen = getDisplay()->getSystem()->getScreenMonitorFromIdx( nNewScreen, nMonitor ); -- if (!pScreen) -+ GdkScreen *pScreen = NULL; -+ GdkRectangle aNewMonitor; -+ -+ bool bSpanAllScreens = nNewScreen == (unsigned int)-1; -+ m_bSpanMonitorsWhenFullscreen = bSpanAllScreens && getDisplay()->getSystem()->GetDisplayScreenCount() > 1; -+ -+ if (m_bSpanMonitorsWhenFullscreen) //span all screens - { -- g_warning ("Attempt to move GtkSalFrame to invalid screen %d => " -- "fallback to current\n", nNewScreen); - pScreen = gtk_widget_get_screen( m_pWindow ); -- bSameMonitor = true; -+ aNewMonitor.x = 0; -+ aNewMonitor.y = 0; -+ aNewMonitor.width = gdk_screen_get_width(pScreen); -+ aNewMonitor.height = gdk_screen_get_height(pScreen); - } -+ else -+ { -+ gint nMonitor; -+ bool bSameMonitor = false; - -- // Heavy lifting, need to move screen ... -- if( pScreen != gtk_widget_get_screen( m_pWindow )) -- gtk_window_set_screen( GTK_WINDOW( m_pWindow ), pScreen ); -+ if (!bSpanAllScreens) -+ { -+ pScreen = getDisplay()->getSystem()->getScreenMonitorFromIdx( nNewScreen, nMonitor ); -+ if (!pScreen) -+ { -+ g_warning ("Attempt to move GtkSalFrame to invalid screen %d => " -+ "fallback to current\n", nNewScreen); -+ } -+ } - -- gint nOldMonitor = gdk_screen_get_monitor_at_window( -- pScreen, widget_get_window( m_pWindow ) ); -- if (bSameMonitor) -- nMonitor = nOldMonitor; -+ if (!pScreen) -+ { -+ pScreen = gtk_widget_get_screen( m_pWindow ); -+ bSameMonitor = true; -+ } - --#if OSL_DEBUG_LEVEL > 1 -- if( nMonitor == nOldMonitor ) -- g_warning( "An apparently pointless SetScreen - should we elide it ?" ); --#endif -+ // Heavy lifting, need to move screen ... -+ if( pScreen != gtk_widget_get_screen( m_pWindow )) -+ gtk_window_set_screen( GTK_WINDOW( m_pWindow ), pScreen ); -+ -+ gint nOldMonitor = gdk_screen_get_monitor_at_window( -+ pScreen, widget_get_window( m_pWindow ) ); -+ if (bSameMonitor) -+ nMonitor = nOldMonitor; - -- GdkRectangle aOldMonitor, aNewMonitor; -- gdk_screen_get_monitor_geometry( pScreen, nOldMonitor, &aOldMonitor ); -- gdk_screen_get_monitor_geometry( pScreen, nMonitor, &aNewMonitor ); -+ #if OSL_DEBUG_LEVEL > 1 -+ if( nMonitor == nOldMonitor ) -+ g_warning( "An apparently pointless SetScreen - should we elide it ?" ); -+ #endif -+ -+ GdkRectangle aOldMonitor; -+ gdk_screen_get_monitor_geometry( pScreen, nOldMonitor, &aOldMonitor ); -+ gdk_screen_get_monitor_geometry( pScreen, nMonitor, &aNewMonitor ); -+ -+ maGeometry.nX = aNewMonitor.x + maGeometry.nX - aOldMonitor.x; -+ maGeometry.nY = aNewMonitor.y + maGeometry.nY - aOldMonitor.y; -+ } - - bool bResize = false; - bool bVisible = IS_WIDGET_MAPPED( m_pWindow ); - if( bVisible ) - Show( sal_False ); - -- maGeometry.nX = aNewMonitor.x + maGeometry.nX - aOldMonitor.x; -- maGeometry.nY = aNewMonitor.y + maGeometry.nY - aOldMonitor.y; -- - if( eType == SET_FULLSCREEN ) - { - maGeometry.nX = aNewMonitor.x; -@@ -2093,8 +2124,8 @@ void GtkSalFrame::SetScreen( unsigned int nNewScreen, int eType, Rectangle *pSiz - - // #i110881# for the benefit of compiz set a max size here - // else setting to fullscreen fails for unknown reasons -- m_aMaxSize.Width() = aNewMonitor.width+100; -- m_aMaxSize.Height() = aNewMonitor.height+100; -+ m_aMaxSize.Width() = aNewMonitor.width; -+ m_aMaxSize.Height() = aNewMonitor.height; - } - - if( pSize && eType == SET_UN_FULLSCREEN ) -@@ -2119,14 +2150,19 @@ void GtkSalFrame::SetScreen( unsigned int nNewScreen, int eType, Rectangle *pSiz - - #if !GTK_CHECK_VERSION(3,0,0) - // _NET_WM_STATE_FULLSCREEN (Metacity <-> KWin) -- if( ! getDisplay()->getWMAdaptor()->isLegacyPartialFullscreen() ) -+ if( ! getDisplay()->getWMAdaptor()->isLegacyPartialFullscreen() ) - #endif - { -+#if GTK_CHECK_VERSION(3,8,0) -+ gdk_window_set_fullscreen_mode( gtk_widget_get_window(m_pWindow), m_bSpanMonitorsWhenFullscreen -+ ? GDK_FULLSCREEN_ON_ALL_MONITORS : GDK_FULLSCREEN_ON_CURRENT_MONITOR ); -+#endif - if( eType == SET_FULLSCREEN ) - gtk_window_fullscreen( GTK_WINDOW( m_pWindow ) ); - else if( eType == SET_UN_FULLSCREEN ) - gtk_window_unfullscreen( GTK_WINDOW( m_pWindow ) ); - } -+ - if( eType == SET_UN_FULLSCREEN && - !(m_nStyle & SAL_FRAME_STYLE_SIZEABLE) ) - gtk_window_set_resizable( GTK_WINDOW( m_pWindow ), FALSE ); -@@ -3339,10 +3375,54 @@ gboolean GtkSalFrame::signalFocus( GtkWidget*, GdkEventFocus* pEvent, gpointer f - return sal_False; - } - -+#if !GTK_CHECK_VERSION(3,8,0) -+static OString getDisplayString() -+{ -+ int nParams = rtl_getAppCommandArgCount(); -+ OUString aParam; -+ for( int i = 0; i < nParams; i++ ) -+ { -+ rtl_getAppCommandArg( i, &aParam.pData ); -+ if( i < nParams-1 && (aParam == "-display" || aParam == "--display" ) ) -+ { -+ rtl_getAppCommandArg( i+1, &aParam.pData ); -+ return OUStringToOString( aParam, osl_getThreadTextEncoding() ); -+ } -+ } -+ return OString(); -+} -+#endif -+ - gboolean GtkSalFrame::signalMap( GtkWidget *pWidget, GdkEvent*, gpointer frame ) - { - GtkSalFrame* pThis = (GtkSalFrame*)frame; - -+#if !GTK_CHECK_VERSION(3,8,0) -+ //Spawn off a helper program that will attempt to set this fullscreen -+ //window to span all displays. -+ if (pThis->m_bFullscreen && pThis->m_bSpanMonitorsWhenFullscreen) -+ { -+ GdkWindow* gdkwin = gtk_widget_get_window(pThis->m_pWindow); -+ if (gdkwin) -+ { -+ OUString sProgramURL( "$BRAND_BASE_DIR/program/xid-fullscreen-on-all-monitors"); -+ rtl::Bootstrap::expandMacros(sProgramURL); -+ OUString sProgram; -+ if (osl::FileBase::getSystemPathFromFileURL(sProgramURL, sProgram) == osl::File::E_None) -+ { -+ OString sFinalProgram(OUStringToOString(sProgram, osl_getThreadTextEncoding()) -+ + " " + OString::number((int)GDK_WINDOW_XID(gdkwin))); -+ OString sDisplay(getDisplayString()); -+ if (!sDisplay.isEmpty()) -+ { -+ sFinalProgram += "--display " + sDisplay; -+ } -+ system(sFinalProgram.getStr()); -+ } -+ } -+ } -+#endif -+ - bool bSetFocus = pThis->m_bSetFocusOnMap; - pThis->m_bSetFocusOnMap = false; - -diff --git a/vcl/unx/gtk/window/xid_fullscreen_on_all_monitors.c b/vcl/unx/gtk/window/xid_fullscreen_on_all_monitors.c -new file mode 100644 -index 0000000..00554b1 ---- /dev/null -+++ b/vcl/unx/gtk/window/xid_fullscreen_on_all_monitors.c -@@ -0,0 +1,99 @@ -+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -+/* -+ * This file is part of the LibreOffice project. -+ * -+ * This Source Code Form is subject to the terms of the Mozilla Public -+ * License, v. 2.0. If a copy of the MPL was not distributed with this -+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. -+ */ -+ -+#include -+#include -+ -+typedef int Window; -+typedef union _GdkEvent GdkEvent; -+typedef struct _GdkWindow GdkWindow; -+typedef struct _GdkDisplay GdkDisplay; -+typedef struct _GdkScreen GdkScreen; -+ -+typedef enum -+{ -+ GDK_FULLSCREEN_ON_CURRENT_MONITOR, -+ GDK_FULLSCREEN_ON_ALL_MONITORS -+} GdkFullscreenMode; -+ -+int main(int argc, char *argv[]) -+{ -+ void *handle; -+ void (*gtk_init)(int*, char***); -+ GdkWindow* (*gdk_x11_window_foreign_new_for_display)(GdkDisplay*, Window); -+ GdkDisplay* (*gdk_display_get_default)(void); -+ GdkEvent* (*gdk_event_get)(void); -+ void (*gtk_main_do_event)(GdkEvent*); -+ void (*gdk_event_free)(GdkEvent*); -+ void (*gdk_window_fullscreen)(GdkWindow *); -+ void (*gdk_window_set_fullscreen_mode)(GdkWindow *, GdkFullscreenMode); -+ -+ GdkEvent *event; -+ GdkWindow *window; -+ int windowid; -+ -+ handle = dlopen("libgtk-3.so.0", RTLD_LAZY); -+ if( NULL == handle ) -+ return -1; -+ -+ gtk_init = (void (*) (int*, char***)) -+ dlsym(handle, "gtk_init"); -+ gdk_x11_window_foreign_new_for_display = (GdkWindow* (*)(GdkDisplay*, Window)) -+ dlsym(handle, "gdk_x11_window_foreign_new_for_display"); -+ gdk_display_get_default = (GdkDisplay* (*)(void)) -+ dlsym(handle, "gdk_display_get_default"); -+ gdk_event_get = (GdkEvent* (*)(void)) -+ dlsym(handle, "gdk_event_get"); -+ gtk_main_do_event = (void (*)(GdkEvent*)) -+ dlsym(handle, "gtk_main_do_event"); -+ gdk_event_free = (void (*)(GdkEvent*)) -+ dlsym(handle, "gdk_event_free"); -+ gdk_window_fullscreen = (void (*)(GdkWindow *)) -+ dlsym(handle, "gdk_window_fullscreen"); -+ gdk_window_set_fullscreen_mode = (void (*)(GdkWindow *, GdkFullscreenMode)) -+ dlsym(handle, "gdk_window_set_fullscreen_mode"); -+ -+ if (!gtk_init || -+ !gdk_x11_window_foreign_new_for_display || -+ !gdk_display_get_default || -+ !gdk_event_get || -+ !gtk_main_do_event || -+ !gdk_event_free || -+ !gdk_window_fullscreen || -+ !gdk_window_set_fullscreen_mode) -+ { -+ dlclose(handle); -+ return -1; -+ } -+ -+ gtk_init(&argc, &argv); -+ -+ windowid = atoi(argv[1]); -+ -+ window = gdk_x11_window_foreign_new_for_display(gdk_display_get_default(), windowid); -+ if (!window) -+ { -+ dlclose(handle); -+ return -1; -+ } -+ -+ gdk_window_set_fullscreen_mode(window, GDK_FULLSCREEN_ON_ALL_MONITORS); -+ gdk_window_fullscreen(window); -+ -+ while ((event = gdk_event_get()) != NULL) -+ { -+ gtk_main_do_event(event); -+ gdk_event_free(event); -+ } -+ -+ dlclose(handle); -+ return 0; -+} -+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -+ --- -1.8.3.1 - diff --git a/0001-Related-rhbz-968892-discard-impossible-languages-for.patch b/0001-Related-rhbz-968892-discard-impossible-languages-for.patch deleted file mode 100644 index 8bfe9a0..0000000 --- a/0001-Related-rhbz-968892-discard-impossible-languages-for.patch +++ /dev/null @@ -1,68 +0,0 @@ -From b5bd2d1d8d09a44af354584ff187d9e935ffd973 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Tue, 4 Jun 2013 17:13:13 +0100 -Subject: [PATCH] Related: rhbz#968892 discard impossible languages for glyph - fallback - -Change-Id: I14f1bab09eb0be9c2c896a1dde45913b99aab6df ---- - vcl/generic/fontmanager/fontconfig.cxx | 39 ++++++++++++++++++++++++++++++++++ - 1 file changed, 39 insertions(+) - -diff --git a/vcl/generic/fontmanager/fontconfig.cxx b/vcl/generic/fontmanager/fontconfig.cxx -index 1b36980..ff471fa 100644 ---- a/vcl/generic/fontmanager/fontconfig.cxx -+++ b/vcl/generic/fontmanager/fontconfig.cxx -@@ -847,6 +847,41 @@ - #endif - } - -+ //returns true if the given code-point couldn't possibly be in rLangTag. -+ bool isImpossibleCodePointForLang(const LanguageTag &rLangTag, sal_uInt32 currentChar) -+ { -+ //a non-default script is set, lets believe it -+ if (rLangTag.hasScript()) -+ return false; -+ -+ int32_t script = u_getIntPropertyValue(currentChar, UCHAR_SCRIPT); -+ UScriptCode eScript = static_cast(script); -+ bool bIsImpossible = false; -+ OUString sLang = rLangTag.getLanguage(); -+ switch (eScript) -+ { -+ case USCRIPT_TELUGU: -+ bIsImpossible = sLang != "te"; -+ break; -+ case USCRIPT_BENGALI: -+ bIsImpossible = sLang != "bn" && -+ sLang != "as" && sLang != "mkb" && -+ sLang != "kfv" && sLang != "ccp" && -+ sLang != "tnv" && sLang != "ctg" && -+ sLang != "haj" && sLang != "ksy" && -+ sLang != "rkt" && sLang != "rjs" && -+ sLang != "rhg" && sLang != "syl" && -+ sLang != "kyv" && sLang != "zrg" && -+ sLang != "nhh"; -+ break; -+ default: -+ break; -+ } -+ SAL_WARN_IF(bIsImpossible, "vcl", "Throwing away user set language of " -+ << sLang << " for finding a font for glyph fallback and autodetecting instead"); -+ return bIsImpossible; -+ } -+ - LanguageTag getExemplerLangTagForCodePoint(sal_uInt32 currentChar) - { - int32_t script = u_getIntPropertyValue(currentChar, UCHAR_SCRIPT); -@@ -954,6 +989,10 @@ - // also handle unicode surrogates - const sal_uInt32 nCode = rMissingCodes.iterateCodePoints( &nStrIndex ); - FcCharSetAddChar( unicodes, nCode ); -+ //if the codepoint is impossible for this lang tag, then clear it -+ //and autodetect something useful -+ if (!aLangAttrib.isEmpty() && isImpossibleCodePointForLang(aLangTag, nCode)) -+ aLangAttrib = OString(); - //#i105784#/rhbz#527719 improve selection of fallback font - if (aLangAttrib.isEmpty()) - { diff --git a/0001-Resolves-fdo-48835-application-menu-for-LibreOffice.patch b/0001-Resolves-fdo-48835-application-menu-for-LibreOffice.patch deleted file mode 100644 index a55294e..0000000 --- a/0001-Resolves-fdo-48835-application-menu-for-LibreOffice.patch +++ /dev/null @@ -1,249 +0,0 @@ -From 931fc46eb8e09a9b16232fd58a222a47d28c5ea1 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Thu, 18 Jul 2013 17:19:46 +0100 -Subject: [PATCH] Resolves: fdo#48835 application menu for LibreOffice - -(cherry picked from commit c6d4c18c7ccf047bdb0ca1b65d8f63efa5d8422f) - -Change-Id: I623f029722b71dde6e60f289c7339a96e2dfbf8e ---- - vcl/inc/unx/gtk/gtkframe.hxx | 2 + - vcl/unx/gtk/window/gtksalframe.cxx | 149 +++++++++++++++++++++++++++++++++++-- - 2 files changed, 144 insertions(+), 7 deletions(-) - -diff --git a/vcl/inc/unx/gtk/gtkframe.hxx b/vcl/inc/unx/gtk/gtkframe.hxx -index c3ea919..cce16ab 100644 ---- a/vcl/inc/unx/gtk/gtkframe.hxx -+++ b/vcl/inc/unx/gtk/gtkframe.hxx -@@ -309,7 +309,9 @@ public: - GtkSalFrame( SystemParentData* pSysData ); - - guint m_nMenuExportId; -+ guint m_nAppMenuExportId; - guint m_nActionGroupExportId; -+ guint m_nAppActionGroupExportId; - guint m_nHudAwarenessId; - - // dispatches an event, returns true if dispatched -diff --git a/vcl/unx/gtk/window/gtksalframe.cxx b/vcl/unx/gtk/window/gtksalframe.cxx -index 0f53e93..a3e648a 100644 ---- a/vcl/unx/gtk/window/gtksalframe.cxx -+++ b/vcl/unx/gtk/window/gtksalframe.cxx -@@ -21,6 +21,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -65,11 +66,17 @@ - # include - #endif - -+#include -+#include - #include - #include - #include - #include - #include -+#include -+#include -+#include -+#include - - #if GTK_CHECK_VERSION(3,0,0) - # include -@@ -534,6 +541,71 @@ static void hud_activated( gboolean hud_active, gpointer user_data ) - } - } - -+static void activate_uno(GSimpleAction *action, GVariant*, gpointer) -+{ -+ uno::Reference< css::uno::XComponentContext > xContext = ::comphelper::getProcessComponentContext(); -+ -+ uno::Reference< css::frame::XDesktop2 > xDesktop = css::frame::Desktop::create( xContext ); -+ -+ uno::Reference < css::frame::XFrame > xFrame(xDesktop->getActiveFrame()); -+ if (!xFrame.is()) -+ xFrame = uno::Reference < css::frame::XFrame >(xDesktop, uno::UNO_QUERY); -+ -+ if (!xFrame.is()) -+ return; -+ -+ uno::Reference< css::frame::XDispatchProvider > xDispatchProvider(xFrame, uno::UNO_QUERY); -+ if (!xDispatchProvider.is()) -+ return; -+ -+ gchar *strval = NULL; -+ g_object_get(action, "name", &strval, NULL); -+ if (!strval) -+ return; -+ -+ if (strcmp(strval, "New") == 0) -+ { -+ uno::Reference xModuleManager(frame::ModuleManager::create(xContext)); -+ OUString aModuleId(xModuleManager->identify(xFrame)); -+ if (aModuleId.isEmpty()) -+ return; -+ -+ comphelper::SequenceAsHashMap lModuleDescription(xModuleManager->getByName(aModuleId)); -+ OUString sFactoryService; -+ lModuleDescription[OUString("ooSetupFactoryEmptyDocumentURL")] >>= sFactoryService; -+ if (sFactoryService.isEmpty()) -+ return; -+ -+ uno::Sequence < css::beans::PropertyValue > args(0); -+ xDesktop->loadComponentFromURL(sFactoryService, OUString("_blank"), 0, args); -+ return; -+ } -+ -+ OUString sCommand(".uno:"); -+ sCommand += OUString(strval, strlen(strval), RTL_TEXTENCODING_UTF8); -+ g_free(strval); -+ -+ css::util::URL aCommand; -+ aCommand.Complete = sCommand; -+ uno::Reference< css::util::XURLTransformer > xParser = css::util::URLTransformer::create(xContext); -+ xParser->parseStrict(aCommand); -+ -+ uno::Reference< css::frame::XDispatch > xDisp = xDispatchProvider->queryDispatch(aCommand, OUString(), 0); -+ -+ if (!xDisp.is()) -+ return; -+ -+ xDisp->dispatch(aCommand, css::uno::Sequence< css::beans::PropertyValue >()); -+} -+ -+static GActionEntry app_entries[] = { -+ { "OptionsTreeDialog", activate_uno, NULL, NULL, NULL, {0} }, -+ { "About", activate_uno, NULL, NULL, NULL, {0} }, -+ { "HelpIndex", activate_uno, NULL, NULL, NULL, {0} }, -+ { "Quit", activate_uno, NULL, NULL, NULL, {0} }, -+ { "New", activate_uno, NULL, NULL, NULL, {0} } -+}; -+ - gboolean ensure_dbus_setup( gpointer data ) - { - GtkSalFrame* pSalFrame = reinterpret_cast< GtkSalFrame* >( data ); -@@ -553,29 +625,86 @@ gboolean ensure_dbus_setup( gpointer data ) - - // Generate menu paths. - XLIB_Window windowId = GDK_WINDOW_XID( gdkWindow ); -- gchar* aDBusPath = g_strdup_printf("/window/%lu", windowId); -- gchar* aDBusWindowPath = g_strdup_printf( "/window/%lu", windowId ); -- gchar* aDBusMenubarPath = g_strdup_printf( "/window/%lu/menus/menubar", windowId ); -+ gchar* aDBusWindowPath = g_strdup_printf( "/org/libreoffice/window/%lu", windowId ); -+ gchar* aDBusMenubarPath = g_strdup_printf( "/org/libreoffice/window/%lu/menus/menubar", windowId ); - - // Set window properties. - g_object_set_data_full( G_OBJECT( gdkWindow ), "g-lo-menubar", pMenuModel, ObjectDestroyedNotify ); - g_object_set_data_full( G_OBJECT( gdkWindow ), "g-lo-action-group", pActionGroup, ObjectDestroyedNotify ); - -+ gdk_x11_window_set_utf8_property( gdkWindow, "_GTK_APPLICATION_ID", "org.libreoffice" ); - gdk_x11_window_set_utf8_property( gdkWindow, "_GTK_UNIQUE_BUS_NAME", g_dbus_connection_get_unique_name( pSessionBus ) ); -- gdk_x11_window_set_utf8_property( gdkWindow, "_GTK_APPLICATION_OBJECT_PATH", "" ); -+ gdk_x11_window_set_utf8_property( gdkWindow, "_GTK_APPLICATION_OBJECT_PATH", "/org/libreoffice" ); - gdk_x11_window_set_utf8_property( gdkWindow, "_GTK_WINDOW_OBJECT_PATH", aDBusWindowPath ); - gdk_x11_window_set_utf8_property( gdkWindow, "_GTK_MENUBAR_OBJECT_PATH", aDBusMenubarPath ); -+ gdk_x11_window_set_utf8_property( gdkWindow, "_GTK_APP_MENU_OBJECT_PATH", "/org/libreoffice/menus/appmenu" ); - - // Publish the menu model and the action group. - SAL_INFO("vcl.unity", "exporting menu model at " << pMenuModel << " for window " << windowId); - pSalFrame->m_nMenuExportId = g_dbus_connection_export_menu_model (pSessionBus, aDBusMenubarPath, pMenuModel, NULL); - SAL_INFO("vcl.unity", "exporting action group at " << pActionGroup << " for window " << windowId); -- pSalFrame->m_nActionGroupExportId = g_dbus_connection_export_action_group( pSessionBus, aDBusPath, pActionGroup, NULL); -+ pSalFrame->m_nActionGroupExportId = g_dbus_connection_export_action_group( pSessionBus, aDBusWindowPath, pActionGroup, NULL); - pSalFrame->m_nHudAwarenessId = hud_awareness_register( pSessionBus, aDBusMenubarPath, hud_activated, pSalFrame, NULL, NULL ); - -- g_free( aDBusPath ); -- g_free( aDBusWindowPath ); -+ //app menu, to-do translations, block normal menus when active, honor use appmenu settings -+ ResMgr* pMgr = ImplGetResMgr(); -+ if( pMgr ) -+ { -+ GMenu *menu = g_menu_new (); -+ GMenuItem* item; -+ -+ GMenu *firstsubmenu = g_menu_new (); -+ -+ OString sNew(OUStringToOString(ResId(SV_BUTTONTEXT_NEW, *pMgr).toString(), -+ RTL_TEXTENCODING_UTF8).replaceFirst("~", "_")); -+ -+ item = g_menu_item_new(sNew.getStr(), "app.New"); -+ g_menu_append_item( firstsubmenu, item ); -+ -+ g_menu_append_section( menu, NULL, G_MENU_MODEL(firstsubmenu)); -+ -+ GMenu *secondsubmenu = g_menu_new (); -+ -+ OString sPreferences(OUStringToOString(ResId(SV_STDTEXT_PREFERENCES, *pMgr).toString(), -+ RTL_TEXTENCODING_UTF8).replaceFirst("~", "_")); -+ -+ item = g_menu_item_new(sPreferences.getStr(), "app.OptionsTreeDialog"); -+ g_menu_append_item( secondsubmenu, item ); -+ -+ g_menu_append_section( menu, NULL, G_MENU_MODEL(secondsubmenu)); -+ GMenu *thirdsubmenu = g_menu_new (); -+ -+ OString sHelp(OUStringToOString(ResId(SV_BUTTONTEXT_HELP, *pMgr).toString(), -+ RTL_TEXTENCODING_UTF8).replaceFirst("~", "_")); -+ -+ item = g_menu_item_new(sHelp.getStr(), "app.HelpIndex"); -+ g_menu_append_item( thirdsubmenu, item ); -+ -+ OString sAbout(OUStringToOString(ResId(SV_STDTEXT_ABOUT, *pMgr).toString(), -+ RTL_TEXTENCODING_UTF8).replaceFirst("~", "_")); -+ -+ item = g_menu_item_new(sAbout.getStr(), "app.About"); -+ g_menu_append_item( thirdsubmenu, item ); -+ -+ OString sQuit(OUStringToOString(ResId(SV_MENU_MAC_QUITAPP, *pMgr).toString(), -+ RTL_TEXTENCODING_UTF8).replaceFirst("~", "_")); -+ -+ item = g_menu_item_new(sQuit.getStr(), "app.Quit"); -+ g_menu_append_item( thirdsubmenu, item ); -+ g_menu_append_section( menu, NULL, G_MENU_MODEL(thirdsubmenu)); -+ -+ GSimpleActionGroup *group = g_simple_action_group_new (); -+ g_simple_action_group_add_entries (group, app_entries, G_N_ELEMENTS (app_entries), NULL); -+ GActionGroup* pAppActionGroup = G_ACTION_GROUP(group); -+ -+ pSalFrame->m_nAppActionGroupExportId = g_dbus_connection_export_action_group( pSessionBus, "/org/libreoffice", pAppActionGroup, NULL); -+ g_object_unref(pAppActionGroup); -+ pSalFrame->m_nAppMenuExportId = g_dbus_connection_export_menu_model (pSessionBus, "/org/libreoffice/menus/appmenu", G_MENU_MODEL (menu), NULL); -+ g_object_unref(menu); -+ } -+ - g_free( aDBusMenubarPath ); -+ g_free( aDBusWindowPath ); - } - - return FALSE; -@@ -707,8 +836,12 @@ GtkSalFrame::~GtkSalFrame() - hud_awareness_unregister( pSessionBus, m_nHudAwarenessId ); - if ( m_nMenuExportId ) - g_dbus_connection_unexport_menu_model( pSessionBus, m_nMenuExportId ); -+ if ( m_nAppMenuExportId ) -+ g_dbus_connection_unexport_menu_model( pSessionBus, m_nAppMenuExportId ); - if ( m_nActionGroupExportId ) - g_dbus_connection_unexport_action_group( pSessionBus, m_nActionGroupExportId ); -+ if ( m_nAppActionGroupExportId ) -+ g_dbus_connection_unexport_action_group( pSessionBus, m_nAppActionGroupExportId ); - } - #endif - gtk_widget_destroy( m_pWindow ); -@@ -828,7 +961,9 @@ void GtkSalFrame::InitCommon() - m_pSalMenu = NULL; - m_nWatcherId = 0; - m_nMenuExportId = 0; -+ m_nAppMenuExportId = 0; - m_nActionGroupExportId = 0; -+ m_nAppActionGroupExportId = 0; - m_nHudAwarenessId = 0; - - gtk_widget_set_app_paintable( m_pWindow, TRUE ); --- -1.8.3.1 - diff --git a/0001-Resolves-rhbz-1013480-crash-in-EditLineList-operator.patch b/0001-Resolves-rhbz-1013480-crash-in-EditLineList-operator.patch deleted file mode 100644 index 6ad4032..0000000 --- a/0001-Resolves-rhbz-1013480-crash-in-EditLineList-operator.patch +++ /dev/null @@ -1,45 +0,0 @@ -From b9240ac3695c0f4b88c539721f13dc03b5afdabb Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Tue, 1 Oct 2013 15:14:30 +0100 -Subject: [PATCH] Resolves: rhbz#1013480 crash in EditLineList::operator[] - -avoid crashing anyway, though unknown how to end up in -this scenario - -Change-Id: Ib602c73478e5c4772cfef73f70c67ad22877a39f ---- - editeng/source/editeng/impedit2.cxx | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) - -diff --git a/editeng/source/editeng/impedit2.cxx b/editeng/source/editeng/impedit2.cxx -index 4bc6d70..8dd3e35 100644 ---- a/editeng/source/editeng/impedit2.cxx -+++ b/editeng/source/editeng/impedit2.cxx -@@ -4119,10 +4119,13 @@ Rectangle ImpEditEngine::GetEditCursor( ParaPortion* pPortion, sal_uInt16 nIndex - ? GetYValue( rLSItem.GetInterLineSpace() ) : 0; - - sal_uInt16 nCurIndex = 0; -- OSL_ENSURE( pPortion->GetLines().Count(), "Empty ParaPortion in GetEditCursor!" ); -+ size_t nLineCount = pPortion->GetLines().Count(); -+ OSL_ENSURE( nLineCount, "Empty ParaPortion in GetEditCursor!" ); -+ if (nLineCount == 0) -+ return Rectangle(); - const EditLine* pLine = NULL; - sal_Bool bEOL = ( nFlags & GETCRSR_ENDOFLINE ) ? sal_True : sal_False; -- for ( sal_uInt16 nLine = 0; nLine < pPortion->GetLines().Count(); nLine++ ) -+ for (size_t nLine = 0; nLine < nLineCount; ++nLine) - { - const EditLine* pTmpLine = pPortion->GetLines()[nLine]; - if ( ( pTmpLine->GetStart() == nIndex ) || ( pTmpLine->IsIn( nIndex, bEOL ) ) ) -@@ -4141,7 +4144,7 @@ Rectangle ImpEditEngine::GetEditCursor( ParaPortion* pPortion, sal_uInt16 nIndex - // Cursor at the End of the paragraph. - OSL_ENSURE( nIndex == nCurIndex, "Index dead wrong in GetEditCursor!" ); - -- pLine = pPortion->GetLines()[pPortion->GetLines().Count()-1]; -+ pLine = pPortion->GetLines()[nLineCount-1]; - nY -= pLine->GetHeight(); - if ( !aStatus.IsOutliner() ) - nY -= nSBL; --- -1.8.3.1 - diff --git a/0001-Resolves-rhbz-1015281-crash-on-clicking-custom-anima.patch b/0001-Resolves-rhbz-1015281-crash-on-clicking-custom-anima.patch deleted file mode 100644 index ac18ca7..0000000 --- a/0001-Resolves-rhbz-1015281-crash-on-clicking-custom-anima.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 95c7765107d4d668cfa0709dce8003bf3258ef66 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Mon, 7 Oct 2013 12:21:54 +0100 -Subject: [PATCH] Resolves: rhbz#1015281 crash on clicking custom animation - -Change-Id: Ibb4519a3d41266ae16fcb93567cf5b5c67066b0c ---- - sd/source/ui/animations/motionpathtag.cxx | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/sd/source/ui/animations/motionpathtag.cxx b/sd/source/ui/animations/motionpathtag.cxx -index f5f7ac2..2051823 100644 ---- a/sd/source/ui/animations/motionpathtag.cxx -+++ b/sd/source/ui/animations/motionpathtag.cxx -@@ -366,7 +366,8 @@ MotionPathTag::MotionPathTag( CustomAnimationPane& rPane, ::sd::View& rView, con - { - mpPathObj = mpEffect->createSdrPathObjFromPath(); - mxPolyPoly = mpPathObj->GetPathPoly(); -- maOriginPos = mxOrigin->getPosition(); -+ if (mxOrigin.is()) -+ maOriginPos = mxOrigin->getPosition(); - - SdrPage* pPage = mrView.GetSdrPageView()->GetPage(); - if( pPage ) -@@ -946,7 +947,9 @@ void MotionPathTag::addCustomHandles( SdrHdlList& rHandlerList ) - { - if( mpPathObj ) - { -- ::com::sun::star::awt::Point aPos( mxOrigin->getPosition() ); -+ ::com::sun::star::awt::Point aPos; -+ if (mxOrigin.is()) -+ aPos = mxOrigin->getPosition(); - if( (aPos.X != maOriginPos.X) || (aPos.Y != maOriginPos.Y) ) - { - const basegfx::B2DHomMatrix aTransform(basegfx::tools::createTranslateB2DHomMatrix( --- -1.8.3.1 - diff --git a/0001-Resolves-rhbz-1021915-force-menubar-menus-to-be-up-d.patch b/0001-Resolves-rhbz-1021915-force-menubar-menus-to-be-up-d.patch deleted file mode 100644 index 93a9ae8..0000000 --- a/0001-Resolves-rhbz-1021915-force-menubar-menus-to-be-up-d.patch +++ /dev/null @@ -1,130 +0,0 @@ -From 0881ae68b0d7f977003e0798e52548caa2556f44 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Tue, 29 Oct 2013 16:10:18 +0000 -Subject: [PATCH] Resolves: rhbz#1021915 force menubar menus to be up/down only - -If a menu won't fit in the desired location the default mode is to place it -somewhere it will fit. e.g. above, left, right. For some cases, e.g. menubars, -it's desirable to limit the options to above/below and force the menu to scroll -if it won't fit - -Change-Id: I1998a842d25752389ec9032e54673408d1ed6cb5 ---- - include/vcl/floatwin.hxx | 1 + - include/vcl/menu.hxx | 17 +++++++++++------ - vcl/source/window/menu.cxx | 34 ++++++++++++++++++++++++++++------ - 3 files changed, 40 insertions(+), 12 deletions(-) - -diff --git a/include/vcl/floatwin.hxx b/include/vcl/floatwin.hxx -index 4e2f97c..9a9dbdc 100644 ---- a/include/vcl/floatwin.hxx -+++ b/include/vcl/floatwin.hxx -@@ -48,6 +48,7 @@ class ToolBox; - #define FLOATWIN_POPUPMODE_NEWLEVEL ((sal_uLong)0x00008000) - #define FLOATWIN_POPUPMODE_NOMOUSEUPCLOSE ((sal_uLong)0x00010000) - #define FLOATWIN_POPUPMODE_GRABFOCUS ((sal_uLong)0x00020000) -+#define FLOATWIN_POPUPMODE_NOHORZPLACEMENT ((sal_uLong)0x00040000) - - #define FLOATWIN_POPUPMODEEND_CANCEL ((sal_uInt16)0x0001) - #define FLOATWIN_POPUPMODEEND_TEAROFF ((sal_uInt16)0x0002) -diff --git a/include/vcl/menu.hxx b/include/vcl/menu.hxx -index 5579149..637c701 100644 ---- a/include/vcl/menu.hxx -+++ b/include/vcl/menu.hxx -@@ -62,12 +62,17 @@ namespace vcl { struct MenuLayoutData; } - #define MENU_APPEND ((sal_uInt16)0xFFFF) - #define MENU_ITEM_NOTFOUND ((sal_uInt16)0xFFFF) - --#define POPUPMENU_EXECUTE_DOWN ((sal_uInt16)0x0001) --#define POPUPMENU_EXECUTE_UP ((sal_uInt16)0x0002) --#define POPUPMENU_EXECUTE_LEFT ((sal_uInt16)0x0004) --#define POPUPMENU_EXECUTE_RIGHT ((sal_uInt16)0x0008) -- --#define POPUPMENU_NOMOUSEUPCLOSE ((sal_uInt16)0x0010) -+#define POPUPMENU_EXECUTE_DOWN ((sal_uInt16)0x0001) -+#define POPUPMENU_EXECUTE_UP ((sal_uInt16)0x0002) -+#define POPUPMENU_EXECUTE_LEFT ((sal_uInt16)0x0004) -+#define POPUPMENU_EXECUTE_RIGHT ((sal_uInt16)0x0008) -+#define POPUPMENU_NOMOUSEUPCLOSE ((sal_uInt16)0x0010) -+//If there isn't enough space to put the menu where it wants -+//to go, then they will be autoplaced. Toggle this bit -+//on to force menus to be placed either above or below -+//the starting rectangle and shrunk to fit and then scroll rather than place -+//the menu beside that rectangle -+#define POPUPMENU_NOHORZ_PLACEMENT ((sal_uInt16)0x0020) - - #define MENU_FLAG_NOAUTOMNEMONICS 0x0001 - #define MENU_FLAG_HIDEDISABLEDENTRIES 0x0002 -diff --git a/vcl/source/window/menu.cxx b/vcl/source/window/menu.cxx -index f567ba3..6083554 100644 ---- a/vcl/source/window/menu.cxx -+++ b/vcl/source/window/menu.cxx -@@ -3581,7 +3581,6 @@ - { - ENSURE_OR_RETURN( pExecWindow, "PopupMenu::Execute: need a non-NULL window!", 0 ); - -- - sal_uLong nPopupModeFlags = 0; - if ( nFlags & POPUPMENU_EXECUTE_DOWN ) - nPopupModeFlags = FLOATWIN_POPUPMODE_DOWN; -@@ -3597,6 +3596,9 @@ - if (nFlags & POPUPMENU_NOMOUSEUPCLOSE ) // allow popup menus to stay open on mouse button up - nPopupModeFlags |= FLOATWIN_POPUPMODE_NOMOUSEUPCLOSE; // useful if the menu was opened on mousebutton down (eg toolbox configuration) - -+ if (nFlags & POPUPMENU_NOHORZ_PLACEMENT) -+ nPopupModeFlags |= FLOATWIN_POPUPMODE_NOHORZPLACEMENT; -+ - return ImplExecute( pExecWindow, rRect, nPopupModeFlags, 0, sal_False ); - } - -@@ -3700,17 +3702,37 @@ - - Size aSz = ImplCalcSize( pWin ); - -- long nMaxHeight = pWin->GetDesktopRectPixel().GetHeight(); -+ Rectangle aDesktopRect(pWin->GetDesktopRectPixel()); - if( Application::GetScreenCount() > 1 && Application::IsUnifiedDisplay() ) - { - Window* pDeskW = pWindow->GetWindow( WINDOW_REALPARENT ); - if( ! pDeskW ) - pDeskW = pWindow; - Point aDesktopTL( pDeskW->OutputToAbsoluteScreenPixel( aRect.TopLeft() ) ); -- nMaxHeight = Application::GetWorkAreaPosSizePixel( -- Application::GetBestScreen( Rectangle( aDesktopTL, aRect.GetSize() ) ) -- ).GetHeight(); -+ aDesktopRect = Application::GetWorkAreaPosSizePixel( -+ Application::GetBestScreen( Rectangle( aDesktopTL, aRect.GetSize() ) )); - } -+ -+ long nMaxHeight = aDesktopRect.GetHeight(); -+ -+ //rhbz#1021915. If a menu won't fit in the desired location the default -+ //mode is to place it somewhere it will fit. e.g. above, left, right. For -+ //some cases, e.g. menubars, it's desirable to limit the options to -+ //above/below and force the menu to scroll if it won't fit -+ if (nPopupModeFlags & FLOATWIN_POPUPMODE_NOHORZPLACEMENT) -+ { -+ Window* pRef = pWin; -+ if ( pRef->GetParent() ) -+ pRef = pRef->GetParent(); -+ -+ Rectangle devRect( pRef->OutputToAbsoluteScreenPixel( aRect.TopLeft() ), -+ pRef->OutputToAbsoluteScreenPixel( aRect.BottomRight() ) ); -+ -+ long nHeightAbove = devRect.Top() - aDesktopRect.Top(); -+ long nHeightBelow = aDesktopRect.Bottom() - devRect.Bottom(); -+ nMaxHeight = std::min(nMaxHeight, std::max(nHeightAbove, nHeightBelow)); -+ } -+ - if ( pStartedFrom && pStartedFrom->bIsMenuBar ) - nMaxHeight -= pW->GetSizePixel().Height(); - sal_Int32 nLeft, nTop, nRight, nBottom; -@@ -5345,7 +5367,7 @@ - // #99071# do not grab the focus, otherwise it will be restored to the menubar - // when the frame is reactivated later - //GrabFocus(); -- pActivePopup->ImplExecute( this, Rectangle( aItemTopLeft, aItemBottomRight ), FLOATWIN_POPUPMODE_DOWN, pMenu, bPreSelectFirst ); -+ pActivePopup->ImplExecute( this, Rectangle( aItemTopLeft, aItemBottomRight ), FLOATWIN_POPUPMODE_DOWN | FLOATWIN_POPUPMODE_NOHORZPLACEMENT, pMenu, bPreSelectFirst ); - if ( pActivePopup ) - { - // does not have a window, if aborted before or if there are no entries diff --git a/0001-Resolves-rhbz-968892-force-render-full-grapheme-with.patch b/0001-Resolves-rhbz-968892-force-render-full-grapheme-with.patch deleted file mode 100644 index 6f6f7da..0000000 --- a/0001-Resolves-rhbz-968892-force-render-full-grapheme-with.patch +++ /dev/null @@ -1,138 +0,0 @@ -From 78f93c2ef1acd324c289286fe3c13a429340839b Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Tue, 4 Jun 2013 15:48:23 +0100 -Subject: [PATCH] Resolves: rhbz#968892 force render full grapheme with - fallback font - -Change-Id: I5bb98c61d047e69d74666261b2c489d80f344502 ---- - vcl/generic/glyphs/gcach_layout.cxx | 61 ++++++++++++++++++++++--------------- - vcl/inc/generic/glyphcache.hxx | 5 +++ - 2 files changed, 42 insertions(+), 24 deletions(-) - -diff --git a/vcl/generic/glyphs/gcach_layout.cxx b/vcl/generic/glyphs/gcach_layout.cxx -index 4fd4cf4..3c3c6de 100644 ---- a/vcl/generic/glyphs/gcach_layout.cxx -+++ b/vcl/generic/glyphs/gcach_layout.cxx -@@ -41,6 +41,10 @@ - #include - #include - -+#include -+#include -+#include -+ - // ======================================================================= - // layout implementation for ServerFont - // ======================================================================= -@@ -90,23 +94,42 @@ void ServerFontLayout::AdjustLayout( ImplLayoutArgs& rArgs ) - } - } - --// ======================================================================= -- --static bool lcl_CharIsJoiner(sal_Unicode cChar) -+void ServerFontLayout::setNeedFallback(ImplLayoutArgs& rArgs, sal_Int32 nCharPos, -+ bool bRightToLeft) - { -- return ((cChar == 0x200C) || (cChar == 0x200D)); --} -+ if (nCharPos < 0) -+ return; - --static bool needPreviousCode(sal_Unicode cChar) --{ -- return lcl_CharIsJoiner(cChar) || U16_IS_LEAD(cChar); --} -+ using namespace ::com::sun::star; - --static bool needNextCode(sal_Unicode cChar) --{ -- return lcl_CharIsJoiner(cChar) || U16_IS_TRAIL(cChar); -+ if (!mxBreak.is()) -+ { -+ uno::Reference< lang::XMultiServiceFactory > xFactory = -+ comphelper::getProcessServiceFactory(); -+ mxBreak = uno::Reference< i18n::XBreakIterator >(xFactory->createInstance( -+ "com.sun.star.i18n.BreakIterator"), uno::UNO_QUERY); -+ } -+ -+ LanguageTag aLangTag(rArgs.meLanguage); -+ lang::Locale aLocale(aLangTag.getLocale()); -+ -+ //if position nCharPos is missing in the font, grab the entire grapheme and -+ //mark all glyphs as missing so the whole thing is rendered with the same -+ //font -+ OUString aRun(rArgs.mpStr); -+ sal_Int32 nDone; -+ sal_Int32 nGraphemeStartPos = -+ mxBreak->previousCharacters(aRun, nCharPos+1, aLocale, -+ i18n::CharacterIteratorMode::SKIPCELL, 1, nDone); -+ sal_Int32 nGraphemeEndPos = -+ mxBreak->nextCharacters(aRun, nCharPos, aLocale, -+ i18n::CharacterIteratorMode::SKIPCELL, 1, nDone); -+ -+ rArgs.NeedFallback(nGraphemeStartPos, nGraphemeEndPos, bRightToLeft); - } - -+// ======================================================================= -+ - std::ostream &operator <<(std::ostream& s, ServerFont* pFont) - { - #ifndef SAL_LOG_INFO -@@ -401,9 +424,7 @@ bool HbLayoutEngine::layout(ServerFontLayout& rLayout, ImplLayoutArgs& rArgs) - // if needed request glyph fallback by updating LayoutArgs - if (!nGlyphIndex) - { -- if (nCharPos >= 0) -- rArgs.NeedFallback(nCharPos, bRightToLeft); -- -+ rLayout.setNeedFallback(rArgs, nCharPos, bRightToLeft); - if (SAL_LAYOUT_FOR_FALLBACK & rArgs.mnFlags) - continue; - } -@@ -1006,15 +1027,7 @@ bool IcuLayoutEngine::layout(ServerFontLayout& rLayout, ImplLayoutArgs& rArgs) - // if needed request glyph fallback by updating LayoutArgs - if( !nGlyphIndex ) - { -- if( nCharPos >= 0 ) -- { -- rArgs.NeedFallback( nCharPos, bRightToLeft ); -- if ( (nCharPos > 0) && needPreviousCode(rArgs.mpStr[nCharPos-1]) ) -- rArgs.NeedFallback( nCharPos-1, bRightToLeft ); -- else if ( (nCharPos + 1 < nEndRunPos) && needNextCode(rArgs.mpStr[nCharPos+1]) ) -- rArgs.NeedFallback( nCharPos+1, bRightToLeft ); -- } -- -+ rLayout.setNeedFallback(rArgs, nCharPos, bRightToLeft); - if( SAL_LAYOUT_FOR_FALLBACK & rArgs.mnFlags ) - continue; - } -diff --git a/vcl/inc/generic/glyphcache.hxx b/vcl/inc/generic/glyphcache.hxx -index a7363f9..d6cdee1 100644 ---- a/vcl/inc/generic/glyphcache.hxx -+++ b/vcl/inc/generic/glyphcache.hxx -@@ -37,6 +37,7 @@ - #include - #include - #include -+#include - - namespace basegfx { class B2DPolyPolygon; } - -@@ -311,6 +312,7 @@ - { - private: - ServerFont& mrServerFont; -+ com::sun::star::uno::Reference mxBreak; - - // enforce proper copy semantic - SAL_DLLPRIVATE ServerFontLayout( const ServerFontLayout& ); -@@ -324,5 +326,7 @@ - virtual void AdjustLayout( ImplLayoutArgs& ); - virtual void DrawText( SalGraphics& ) const; -+ void setNeedFallback(ImplLayoutArgs& rArgs, sal_Int32 nIndex, -+ bool bRightToLeft); - ServerFont& GetServerFont() const { return mrServerFont; } - }; - diff --git a/0001-Resolves-rhbz-996162-apparent-NULL-bullet-font.patch b/0001-Resolves-rhbz-996162-apparent-NULL-bullet-font.patch deleted file mode 100644 index bc27af2..0000000 --- a/0001-Resolves-rhbz-996162-apparent-NULL-bullet-font.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 166510ed48bf49b75a031ce973f41d08fb4e4518 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Thu, 22 Aug 2013 15:29:10 +0100 -Subject: [PATCH] Resolves: rhbz#996162 apparent NULL bullet font - -Change-Id: I2f50ef1dabe2f152f2e18025edc88734158dbea2 ---- - editeng/source/outliner/outliner.cxx | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/editeng/source/outliner/outliner.cxx b/editeng/source/outliner/outliner.cxx -index cb27c69..49465fb 100644 ---- a/editeng/source/outliner/outliner.cxx -+++ b/editeng/source/outliner/outliner.cxx -@@ -897,9 +897,15 @@ Font Outliner::ImpCalcBulletFont( sal_Int32 nPara ) const - } - - Font aBulletFont; -+ const Font *pSourceFont = 0; - if ( pFmt->GetNumberingType() == SVX_NUM_CHAR_SPECIAL ) - { -- aBulletFont = *pFmt->GetBulletFont(); -+ pSourceFont = pFmt->GetBulletFont(); -+ } -+ -+ if (pSourceFont) -+ { -+ aBulletFont = *pSourceFont; - } - else - { --- -1.8.3.1 - diff --git a/0001-WaE-Wstrict-overflow-assuming-signed-overflow-does-n.patch b/0001-WaE-Wstrict-overflow-assuming-signed-overflow-does-n.patch deleted file mode 100644 index 4c416c7..0000000 --- a/0001-WaE-Wstrict-overflow-assuming-signed-overflow-does-n.patch +++ /dev/null @@ -1,33 +0,0 @@ -From ca576e0804324bbb36b697543cbe992e34d4b951 Mon Sep 17 00:00:00 2001 -From: Eike Rathke -Date: Mon, 7 Oct 2013 21:51:26 +0200 -Subject: [PATCH] WaE [-Wstrict-overflow] assuming signed overflow does not - occur - -... when assuming that (X - c) <= X is always true -... or that (X + c) < X is always false - -Change-Id: Ib2313827cd6358ced0141b41cba753896b676e28 ---- - svtools/source/contnr/imivctl1.cxx | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/svtools/source/contnr/imivctl1.cxx b/svtools/source/contnr/imivctl1.cxx -index 1cd006b..0685bc3 100644 ---- a/svtools/source/contnr/imivctl1.cxx -+++ b/svtools/source/contnr/imivctl1.cxx -@@ -2710,9 +2710,9 @@ Rectangle SvxIconChoiceCtrl_Impl::CalcFocusRect( SvxIconChoiceCtrlEntry* pEntry - Rectangle aFocusRect( aBoundRect.Left(), aBmpRect.Top() - 1, - aBoundRect.Right() - 4, aTextRect.Bottom() + 1 ); - // the focus rectangle should not touch the text -- if( aFocusRect.Left() - 1 >= pEntry->aRect.Left() ) -+ if( aFocusRect.Left() > ::std::numeric_limits::min() && aFocusRect.Left() - 1 >= pEntry->aRect.Left() ) - aFocusRect.Left()--; -- if( aFocusRect.Right() + 1 <= pEntry->aRect.Right() ) -+ if( aFocusRect.Right() < ::std::numeric_limits::max() && aFocusRect.Right() + 1 <= pEntry->aRect.Right() ) - aFocusRect.Right()++; - - return aFocusRect; --- -1.8.3.1 - diff --git a/0001-add-config.-for-formats-newly-supported-by-libmwaw.patch b/0001-add-config.-for-formats-newly-supported-by-libmwaw.patch deleted file mode 100644 index c13fb06..0000000 --- a/0001-add-config.-for-formats-newly-supported-by-libmwaw.patch +++ /dev/null @@ -1,289 +0,0 @@ -From 0cdd8a4f17a80b55c54c1f287c1f10bd7fa4307c Mon Sep 17 00:00:00 2001 -From: David Tardon -Date: Sun, 3 Nov 2013 10:02:58 +0100 -Subject: [PATCH] add config. for formats newly supported by libmwaw - -Change-Id: I19cc5b13adf1c0d8cf26abbc9f4254ae89a970fc ---- - filter/Configuration_filter.mk | 6 +++++ - .../config/fragments/filters/Beagle_Works.xcu | 29 ++++++++++++++++++++++ - .../config/fragments/filters/Great_Works.xcu | 29 ++++++++++++++++++++++ - filter/source/config/fragments/filters/MacDoc.xcu | 29 ++++++++++++++++++++++ - .../config/fragments/types/writer_Beagle_Works.xcu | 29 ++++++++++++++++++++++ - .../config/fragments/types/writer_Great_Works.xcu | 29 ++++++++++++++++++++++ - .../config/fragments/types/writer_MacDoc.xcu | 29 ++++++++++++++++++++++ - writerperfect/source/writer/MWAWImportFilter.cxx | 2 +- - 8 files changed, 181 insertions(+), 1 deletion(-) - create mode 100644 filter/source/config/fragments/filters/Beagle_Works.xcu - create mode 100644 filter/source/config/fragments/filters/Great_Works.xcu - create mode 100644 filter/source/config/fragments/filters/MacDoc.xcu - create mode 100644 filter/source/config/fragments/types/writer_Beagle_Works.xcu - create mode 100644 filter/source/config/fragments/types/writer_Great_Works.xcu - create mode 100644 filter/source/config/fragments/types/writer_MacDoc.xcu - -diff --git a/filter/Configuration_filter.mk b/filter/Configuration_filter.mk -index 269866b..7102e27 100644 ---- a/filter/Configuration_filter.mk -+++ b/filter/Configuration_filter.mk -@@ -304,14 +304,17 @@ $(call filter_Configuration_add_types,fcfg_langpack,fcfg_writer_types.xcu,filter - writer_StarOffice_XML_Writer \ - writer_WordPerfect_Document \ - writer_MS_Works_Document \ -+ writer_Beagle_Works \ - writer_ClarisWorks \ - writer_DocMaker \ - writer_eDoc_Document \ - writer_FullWrite_Professional \ -+ writer_Great_Works \ - writer_HanMac_Word_K \ - writer_LightWayText \ - writer_Mac_Word \ - writer_Mac_Works \ -+ writer_MacDoc \ - writer_MacWrite \ - writer_MacWritePro \ - writer_Mariner_Write \ -@@ -350,14 +353,17 @@ $(call filter_Configuration_add_filters,fcfg_langpack,fcfg_writer_filters.xcu,fi - StarOffice_XML__Writer_ \ - WordPerfect \ - MS_Works \ -+ Beagle_Works \ - ClarisWorks \ - DocMaker \ - eDoc_Document \ - FullWrite_Professional \ -+ Great_Works \ - HanMac_Word_K \ - LightWayText \ - Mac_Word \ - Mac_Works \ -+ MacDoc \ - MacWrite \ - MacWritePro \ - Mariner_Write \ -diff --git a/filter/source/config/fragments/filters/Beagle_Works.xcu b/filter/source/config/fragments/filters/Beagle_Works.xcu -new file mode 100644 -index 0000000..f1cab85 ---- /dev/null -+++ b/filter/source/config/fragments/filters/Beagle_Works.xcu -@@ -0,0 +1,29 @@ -+ -+ -+ -+ -+ IMPORT ALIEN USESOPTIONS 3RDPARTYFILTER PREFERRED -+ -+ -+ com.sun.star.comp.Writer.MWAWImportFilter -+ -+ -+ Beagle Works Document -+ -+ -+ 0 -+ -+ -+ writer_Beagle_Works -+ -+ -+ com.sun.star.text.TextDocument -+ -+ -diff --git a/filter/source/config/fragments/filters/Great_Works.xcu b/filter/source/config/fragments/filters/Great_Works.xcu -new file mode 100644 -index 0000000..6090504 ---- /dev/null -+++ b/filter/source/config/fragments/filters/Great_Works.xcu -@@ -0,0 +1,29 @@ -+ -+ -+ -+ -+ IMPORT ALIEN USESOPTIONS 3RDPARTYFILTER PREFERRED -+ -+ -+ com.sun.star.comp.Writer.MWAWImportFilter -+ -+ -+ Great Works Document -+ -+ -+ 0 -+ -+ -+ writer_Great_Works -+ -+ -+ com.sun.star.text.TextDocument -+ -+ -diff --git a/filter/source/config/fragments/filters/MacDoc.xcu b/filter/source/config/fragments/filters/MacDoc.xcu -new file mode 100644 -index 0000000..70ce7d2 ---- /dev/null -+++ b/filter/source/config/fragments/filters/MacDoc.xcu -@@ -0,0 +1,29 @@ -+ -+ -+ -+ -+ IMPORT ALIEN USESOPTIONS 3RDPARTYFILTER PREFERRED -+ -+ -+ com.sun.star.comp.Writer.MWAWImportFilter -+ -+ -+ MacDoc Document -+ -+ -+ 0 -+ -+ -+ writer_MacDoc -+ -+ -+ com.sun.star.text.TextDocument -+ -+ -diff --git a/filter/source/config/fragments/types/writer_Beagle_Works.xcu b/filter/source/config/fragments/types/writer_Beagle_Works.xcu -new file mode 100644 -index 0000000..efe015d ---- /dev/null -+++ b/filter/source/config/fragments/types/writer_Beagle_Works.xcu -@@ -0,0 +1,29 @@ -+ -+ -+ -+ -+ com.sun.star.comp.Writer.MWAWImportFilter -+ -+ -+ hqx zip -+ -+ -+ -+ -+ -+ true -+ -+ -+ Beagle Works -+ -+ -+ Beagle Works -+ -+ -diff --git a/filter/source/config/fragments/types/writer_Great_Works.xcu b/filter/source/config/fragments/types/writer_Great_Works.xcu -new file mode 100644 -index 0000000..ff3fda0 ---- /dev/null -+++ b/filter/source/config/fragments/types/writer_Great_Works.xcu -@@ -0,0 +1,29 @@ -+ -+ -+ -+ -+ com.sun.star.comp.Writer.MWAWImportFilter -+ -+ -+ hqx zip -+ -+ -+ -+ -+ -+ true -+ -+ -+ Great Works -+ -+ -+ Great Works -+ -+ -diff --git a/filter/source/config/fragments/types/writer_MacDoc.xcu b/filter/source/config/fragments/types/writer_MacDoc.xcu -new file mode 100644 -index 0000000..172215b ---- /dev/null -+++ b/filter/source/config/fragments/types/writer_MacDoc.xcu -@@ -0,0 +1,29 @@ -+ -+ -+ -+ -+ com.sun.star.comp.Writer.MWAWImportFilter -+ -+ -+ hqx zip -+ -+ -+ -+ -+ -+ true -+ -+ -+ MacDoc -+ -+ -+ MacDoc -+ -+ -diff --git a/writerperfect/source/writer/MWAWImportFilter.cxx b/writerperfect/source/writer/MWAWImportFilter.cxx -index 11d6cd8..7cfe4ab 100644 ---- a/writerperfect/source/writer/MWAWImportFilter.cxx -+++ b/writerperfect/source/writer/MWAWImportFilter.cxx -@@ -169,7 +169,7 @@ throw( com::sun::star::uno::RuntimeException ) - sTypeName = "writer_HanMac_Word_K"; - break; - case MWAWDocument::MWAW_T_HANMACWORDJ: -- // sTypeName = "writer_HanMac_Word_J"; -+ sTypeName = "writer_HanMac_Word_J"; - break; - case MWAWDocument::MWAW_T_LIGHTWAYTEXT: - sTypeName = "writer_LightWayText"; --- -1.8.4.2 - diff --git a/0001-do-not-build-LibreOffice_Test.patch b/0001-do-not-build-LibreOffice_Test.patch deleted file mode 100644 index 076fa3c..0000000 --- a/0001-do-not-build-LibreOffice_Test.patch +++ /dev/null @@ -1,27 +0,0 @@ -From ac58f62832260af9473eca69e764586258692bb6 Mon Sep 17 00:00:00 2001 -From: David Tardon -Date: Thu, 23 May 2013 14:21:31 +0200 -Subject: [PATCH] do not build LibreOffice_Test - -Change-Id: I74d8d5192b007432a0943d10e82d0c5dad3a605c ---- - instsetoo_native/CustomTarget_install.mk | 3 --- - 1 file changed, 3 deletions(-) - -diff --git a/instsetoo_native/CustomTarget_install.mk b/instsetoo_native/CustomTarget_install.mk -index 0962ac8..d3d922285 100644 ---- a/instsetoo_native/CustomTarget_install.mk -+++ b/instsetoo_native/CustomTarget_install.mk -@@ -118,9 +118,6 @@ else # LIBO_DEV_INSTALL - ifeq (ODK,$(filter ODK,$(BUILD_TYPE))) - $(call instsetoo_native_install_command,sdkoo,en-US,_SDK,,$(PKGFORMAT)) - endif --ifeq (,$(filter WNT MACOSX,$(OS))) -- $(call instsetoo_native_install_command,not-used,en-US,_Test,,$(PKGFORMAT)) --endif - ifeq (HELP,$(filter HELP,$(BUILD_TYPE))$(filter MACOSX,$(OS))) - $(foreach lang,$(gb_HELP_LANGS),\ - $(call instsetoo_native_install_command,ooohelppack,$(lang),,-helppack,$(PKGFORMAT))) --- -1.8.1.4 - diff --git a/0001-enable-more-formats-supported-by-libmwaw.patch b/0001-enable-more-formats-supported-by-libmwaw.patch deleted file mode 100644 index b17bf07..0000000 --- a/0001-enable-more-formats-supported-by-libmwaw.patch +++ /dev/null @@ -1,380 +0,0 @@ -From 78e2af8d7141015372995a3583242998c977e829 Mon Sep 17 00:00:00 2001 -From: David Tardon -Date: Mon, 18 Nov 2013 11:29:47 +0100 -Subject: [PATCH] enable more formats supported by libmwaw - -Change-Id: I60d5ff673843236436af12f86f40916b7d266cd3 ---- - filter/Configuration_filter.mk | 6 ++++ - .../config/fragments/filters/Beagle_Works.xcu | 4 +-- - .../config/fragments/filters/Great_Works.xcu | 4 +-- - filter/source/config/fragments/filters/MacDoc.xcu | 2 +- - .../source/config/fragments/filters/Mac_Acta.xcu | 29 +++++++++++++++++ - .../source/config/fragments/filters/Mac_More.xcu | 29 +++++++++++++++++ - .../config/fragments/types/writer_Beagle_Works.xcu | 6 ++-- - .../config/fragments/types/writer_Great_Works.xcu | 6 ++-- - .../config/fragments/types/writer_Mac_Acta.xcu | 29 +++++++++++++++++ - .../config/fragments/types/writer_Mac_More.xcu | 29 +++++++++++++++++ - writerperfect/source/writer/MWAWImportFilter.cxx | 37 ++++++++++++++++++++-- - 11 files changed, 167 insertions(+), 14 deletions(-) - create mode 100644 filter/source/config/fragments/filters/Mac_Acta.xcu - create mode 100644 filter/source/config/fragments/filters/Mac_More.xcu - create mode 100644 filter/source/config/fragments/types/writer_Mac_Acta.xcu - create mode 100644 filter/source/config/fragments/types/writer_Mac_More.xcu - -diff --git a/filter/Configuration_filter.mk b/filter/Configuration_filter.mk -index bace597..347d00c 100644 ---- a/filter/Configuration_filter.mk -+++ b/filter/Configuration_filter.mk -@@ -328,8 +328,11 @@ $(call filter_Configuration_add_types,fcfg_langpack,fcfg_writer_types.xcu,filter - writer_eDoc_Document \ - writer_FullWrite_Professional \ - writer_Great_Works \ -+ writer_HanMac_Word_J \ - writer_HanMac_Word_K \ - writer_LightWayText \ -+ writer_Mac_Acta \ -+ writer_Mac_More \ - writer_Mac_Word \ - writer_Mac_Works \ - writer_MacDoc \ -@@ -384,8 +387,11 @@ $(call filter_Configuration_add_filters,fcfg_langpack,fcfg_writer_filters.xcu,fi - eDoc_Document \ - FullWrite_Professional \ - Great_Works \ -+ HanMac_Word_J \ - HanMac_Word_K \ - LightWayText \ -+ Mac_Acta \ -+ Mac_More \ - Mac_Word \ - Mac_Works \ - MacDoc \ -diff --git a/filter/source/config/fragments/filters/Beagle_Works.xcu b/filter/source/config/fragments/filters/Beagle_Works.xcu -index f1cab85..e2f9d4c 100644 ---- a/filter/source/config/fragments/filters/Beagle_Works.xcu -+++ b/filter/source/config/fragments/filters/Beagle_Works.xcu -@@ -7,7 +7,7 @@ - * - --> - -- -+ - - IMPORT ALIEN USESOPTIONS 3RDPARTYFILTER PREFERRED - -@@ -15,7 +15,7 @@ - com.sun.star.comp.Writer.MWAWImportFilter - - -- Beagle Works Document -+ BeagleWorks/WordPerfect Works v1 Document - - - 0 -diff --git a/filter/source/config/fragments/filters/Great_Works.xcu b/filter/source/config/fragments/filters/Great_Works.xcu -index 6090504..0e5aeb3 100644 ---- a/filter/source/config/fragments/filters/Great_Works.xcu -+++ b/filter/source/config/fragments/filters/Great_Works.xcu -@@ -7,7 +7,7 @@ - * - --> - -- -+ - - IMPORT ALIEN USESOPTIONS 3RDPARTYFILTER PREFERRED - -@@ -15,7 +15,7 @@ - com.sun.star.comp.Writer.MWAWImportFilter - - -- Great Works Document -+ GreatWorks Document - - - 0 -diff --git a/filter/source/config/fragments/filters/MacDoc.xcu b/filter/source/config/fragments/filters/MacDoc.xcu -index 70ce7d2..2692709 100644 ---- a/filter/source/config/fragments/filters/MacDoc.xcu -+++ b/filter/source/config/fragments/filters/MacDoc.xcu -@@ -15,7 +15,7 @@ - com.sun.star.comp.Writer.MWAWImportFilter - - -- MacDoc Document -+ MacDoc v1 Document - - - 0 -diff --git a/filter/source/config/fragments/filters/Mac_Acta.xcu b/filter/source/config/fragments/filters/Mac_Acta.xcu -new file mode 100644 -index 0000000..c60349a ---- /dev/null -+++ b/filter/source/config/fragments/filters/Mac_Acta.xcu -@@ -0,0 +1,29 @@ -+ -+ -+ -+ -+ IMPORT ALIEN USESOPTIONS 3RDPARTYFILTER PREFERRED -+ -+ -+ com.sun.star.comp.Writer.MWAWImportFilter -+ -+ -+ Acta Mac Classic Document -+ -+ -+ 0 -+ -+ -+ writer_Mac_Acta -+ -+ -+ com.sun.star.text.TextDocument -+ -+ -diff --git a/filter/source/config/fragments/filters/Mac_More.xcu b/filter/source/config/fragments/filters/Mac_More.xcu -new file mode 100644 -index 0000000..c2485f6 ---- /dev/null -+++ b/filter/source/config/fragments/filters/Mac_More.xcu -@@ -0,0 +1,29 @@ -+ -+ -+ -+ -+ IMPORT ALIEN USESOPTIONS 3RDPARTYFILTER PREFERRED -+ -+ -+ com.sun.star.comp.Writer.MWAWImportFilter -+ -+ -+ More Mac v2-3 Document -+ -+ -+ 0 -+ -+ -+ writer_Mac_More -+ -+ -+ com.sun.star.text.TextDocument -+ -+ -diff --git a/filter/source/config/fragments/types/writer_Beagle_Works.xcu b/filter/source/config/fragments/types/writer_Beagle_Works.xcu -index efe015d..5eb45c1 100644 ---- a/filter/source/config/fragments/types/writer_Beagle_Works.xcu -+++ b/filter/source/config/fragments/types/writer_Beagle_Works.xcu -@@ -12,7 +12,7 @@ - com.sun.star.comp.Writer.MWAWImportFilter - - -- hqx zip -+ dummy - - - -@@ -21,9 +21,9 @@ - true - - -- Beagle Works -+ Beagle_Works - - -- Beagle Works -+ BeagleWorks/WordPerfect Works Document - - -diff --git a/filter/source/config/fragments/types/writer_Great_Works.xcu b/filter/source/config/fragments/types/writer_Great_Works.xcu -index ff3fda0..6c448f3 100644 ---- a/filter/source/config/fragments/types/writer_Great_Works.xcu -+++ b/filter/source/config/fragments/types/writer_Great_Works.xcu -@@ -12,7 +12,7 @@ - com.sun.star.comp.Writer.MWAWImportFilter - - -- hqx zip -+ dummy - - - -@@ -21,9 +21,9 @@ - true - - -- Great Works -+ Great_Works - - -- Great Works -+ GreatWorks Document - - -diff --git a/filter/source/config/fragments/types/writer_Mac_Acta.xcu b/filter/source/config/fragments/types/writer_Mac_Acta.xcu -new file mode 100644 -index 0000000..478add2 ---- /dev/null -+++ b/filter/source/config/fragments/types/writer_Mac_Acta.xcu -@@ -0,0 +1,29 @@ -+ -+ -+ -+ -+ com.sun.star.comp.Writer.MWAWImportFilter -+ -+ -+ dummy -+ -+ -+ -+ -+ -+ true -+ -+ -+ Mac_Acta -+ -+ -+ Acta Mac v1-2 Document -+ -+ -diff --git a/filter/source/config/fragments/types/writer_Mac_More.xcu b/filter/source/config/fragments/types/writer_Mac_More.xcu -new file mode 100644 -index 0000000..66047d5 ---- /dev/null -+++ b/filter/source/config/fragments/types/writer_Mac_More.xcu -@@ -0,0 +1,29 @@ -+ -+ -+ -+ -+ com.sun.star.comp.Writer.MWAWImportFilter -+ -+ -+ dummy -+ -+ -+ -+ -+ -+ true -+ -+ -+ Mac_More -+ -+ -+ More Mac v2-3 Document -+ -+ -diff --git a/writerperfect/source/writer/MWAWImportFilter.cxx b/writerperfect/source/writer/MWAWImportFilter.cxx -index 7cfe4ab..452f3a6 100644 ---- a/writerperfect/source/writer/MWAWImportFilter.cxx -+++ b/writerperfect/source/writer/MWAWImportFilter.cxx -@@ -152,6 +152,10 @@ throw( com::sun::star::uno::RuntimeException ) - switch (docType) - { - case MWAWDocument::MWAW_T_ACTA: -+ sTypeName = "writer_Mac_Acta"; -+ break; -+ case MWAWDocument::MWAW_T_BEAGLEWORKS: -+ sTypeName = "writer_Beagle_Works"; - break; - case MWAWDocument::MWAW_T_CLARISWORKS: - sTypeName = "writer_ClarisWorks"; -@@ -162,18 +166,24 @@ throw( com::sun::star::uno::RuntimeException ) - case MWAWDocument::MWAW_T_EDOC: - sTypeName = "writer_eDoc_Document"; - break; -+ case MWAWDocument::MWAW_T_GREATWORKS: -+ sTypeName = "writer_Great_Works"; -+ break; - case MWAWDocument::MWAW_T_FULLWRITE: - sTypeName = "writer_FullWrite_Professional"; - break; -- case MWAWDocument::MWAW_T_HANMACWORDK: -- sTypeName = "writer_HanMac_Word_K"; -- break; - case MWAWDocument::MWAW_T_HANMACWORDJ: - sTypeName = "writer_HanMac_Word_J"; - break; -+ case MWAWDocument::MWAW_T_HANMACWORDK: -+ sTypeName = "writer_HanMac_Word_K"; -+ break; - case MWAWDocument::MWAW_T_LIGHTWAYTEXT: - sTypeName = "writer_LightWayText"; - break; -+ case MWAWDocument::MWAW_T_MACDOC: -+ sTypeName = "writer_MacDoc"; -+ break; - case MWAWDocument::MWAW_T_MARINERWRITE: - sTypeName = "writer_Mariner_Write"; - break; -@@ -192,6 +202,9 @@ throw( com::sun::star::uno::RuntimeException ) - case MWAWDocument::MWAW_T_MICROSOFTWORKS: - sTypeName = "writer_Mac_Works"; - break; -+ case MWAWDocument::MWAW_T_MORE: -+ sTypeName = "writer_Mac_More"; -+ break; - case MWAWDocument::MWAW_T_NISUSWRITER: - sTypeName = "writer_Nisus_Writer"; - break; -@@ -210,6 +223,24 @@ throw( com::sun::star::uno::RuntimeException ) - case MWAWDocument::MWAW_T_ZWRITE: - sTypeName = "writer_ZWrite"; - break; -+ -+ case MWAWDocument::MWAW_T_FRAMEMAKER: -+ case MWAWDocument::MWAW_T_MACDRAW: -+ case MWAWDocument::MWAW_T_MACPAINT: -+ case MWAWDocument::MWAW_T_PAGEMAKER: -+ case MWAWDocument::MWAW_T_READYSETGO: -+ case MWAWDocument::MWAW_T_RAGTIME: -+ case MWAWDocument::MWAW_T_XPRESS: -+ case MWAWDocument::MWAW_T_RESERVED1: -+ case MWAWDocument::MWAW_T_RESERVED2: -+ case MWAWDocument::MWAW_T_RESERVED3: -+ case MWAWDocument::MWAW_T_RESERVED4: -+ case MWAWDocument::MWAW_T_RESERVED5: -+ case MWAWDocument::MWAW_T_RESERVED6: -+ case MWAWDocument::MWAW_T_RESERVED7: -+ case MWAWDocument::MWAW_T_RESERVED8: -+ case MWAWDocument::MWAW_T_RESERVED9: -+ case MWAWDocument::MWAW_T_UNKNOWN: - default: - break; - } --- -1.8.4.2 - diff --git a/0001-fdo-67725-unoidl-AggregatingCursor-must-wrap-modules.patch b/0001-fdo-67725-unoidl-AggregatingCursor-must-wrap-modules.patch deleted file mode 100644 index 8a840ea..0000000 --- a/0001-fdo-67725-unoidl-AggregatingCursor-must-wrap-modules.patch +++ /dev/null @@ -1,172 +0,0 @@ -From f450c132e6a65e1d11f20595bb0bfbf786e1dc2d Mon Sep 17 00:00:00 2001 -From: Stephan Bergmann -Date: Thu, 24 Oct 2013 09:48:13 +0200 -Subject: [PATCH] fdo#67725 unoidl::AggregatingCursor must wrap modules for - aggregation, too - -Otherwise cppuhelper::TypeManager::createTypeDescriptionEnumeration, sitting on -top such an AggregatingCursor, will miss any entities from provider P' in module -M if any previous provider P contains the same module M. - -That happened when climaker generates cli_oootypes.dll, where the enumeration -missed everything from offapi in top-level module "com" because it had already -seen udkapi's "com", and only reported the handful of entities under offapi's -other top-level module "org" (which does not appear in udkapi). - -Change-Id: If538391bde22bcc346417b5988cf12023f0d4172 -(cherry picked from commit bdd55e28fc7788c2968daaf87b782f8e6189ee2d) ---- - unoidl/source/unoidl.cxx | 112 +++++++++++++++++++++++++++++++++-------------- - 1 file changed, 78 insertions(+), 34 deletions(-) - -diff --git a/unoidl/source/unoidl.cxx b/unoidl/source/unoidl.cxx -index a9939e4..c55e02b 100644 ---- a/unoidl/source/unoidl.cxx -+++ b/unoidl/source/unoidl.cxx -@@ -23,41 +23,101 @@ namespace unoidl { - - namespace { - -+class AggregatingModule: public ModuleEntity { -+public: -+ AggregatingModule( -+ std::vector< rtl::Reference< Provider > > const & providers, -+ OUString const & name): -+ providers_(providers), name_(name) -+ {} -+ -+private: -+ virtual ~AggregatingModule() throw () {} -+ -+ virtual std::vector< OUString > getMemberNames() const; -+ -+ virtual rtl::Reference< MapCursor > createCursor() const; -+ -+ std::vector< rtl::Reference< Provider > > providers_; -+ OUString name_; -+}; -+ -+std::vector< OUString > AggregatingModule::getMemberNames() const { -+ std::set< OUString > names; -+ for (std::vector< rtl::Reference< Provider > >::const_iterator i( -+ providers_.begin()); -+ i != providers_.end(); ++i) -+ { -+ rtl::Reference< Entity > ent((*i)->findEntity(name_)); -+ if (ent.is() && ent->getSort() == Entity::SORT_MODULE) { -+ std::vector< OUString > ns( -+ static_cast< ModuleEntity * >(ent.get())->getMemberNames()); -+ names.insert(ns.begin(), ns.end()); -+ } -+ } -+ return std::vector< OUString >(names.begin(), names.end()); -+} -+ - class AggregatingCursor: public MapCursor { - public: - AggregatingCursor( -- std::vector< rtl::Reference< MapCursor > > const & cursors): -- cursors_(cursors), iterator_(cursors_.begin()) -- {} -+ std::vector< rtl::Reference< Provider > > const & providers, -+ OUString const & name): -+ providers_(providers), name_(name), iterator_(providers_.begin()) -+ { findCursor(); } - - private: - virtual ~AggregatingCursor() throw () {} - -- virtual rtl::Reference< Entity > getNext(rtl::OUString * name); -+ virtual rtl::Reference< Entity > getNext(OUString * name); - -- std::vector< rtl::Reference< MapCursor > > cursors_; -- std::vector< rtl::Reference< MapCursor > >::iterator iterator_; -- std::set< rtl::OUString > seenMembers; -+ void findCursor(); -+ -+ std::vector< rtl::Reference< Provider > > providers_; -+ OUString name_; -+ std::vector< rtl::Reference< Provider > >::iterator iterator_; -+ rtl::Reference< MapCursor > cursor_; -+ std::set< OUString > seen_; - }; - --rtl::Reference< Entity > AggregatingCursor::getNext(rtl::OUString * name) { -- for (;;) { -- if (iterator_ == cursors_.end()) { -- return rtl::Reference< Entity >(); -- } -- rtl::OUString n; -- rtl::Reference< Entity > ent((*iterator_)->getNext(&n)); -+rtl::Reference< Entity > AggregatingCursor::getNext(OUString * name) { -+ while (cursor_.is()) { -+ OUString n; -+ rtl::Reference< Entity > ent(cursor_->getNext(&n)); - if (ent.is()) { -- if (seenMembers.insert(n).second) { -+ if (seen_.insert(n).second) { - if (name != 0) { - *name = n; - } -- return ent; -+ return ent->getSort() == Entity::SORT_MODULE -+ ? new AggregatingModule( -+ providers_, (name_.isEmpty() ? name_ : name_ + ".") + n) -+ : ent; - } - } else { -- ++iterator_; -+ cursor_.clear(); -+ findCursor(); - } - } -+ return rtl::Reference< Entity >(); -+} -+ -+void AggregatingCursor::findCursor() { -+ for (; !cursor_.is() && iterator_ != providers_.end(); ++iterator_) { -+ if (name_.isEmpty()) { -+ cursor_ = (*iterator_)->createRootCursor(); -+ } else { -+ rtl::Reference< Entity > ent((*iterator_)->findEntity(name_)); -+ if (ent.is() && ent->getSort() == Entity::SORT_MODULE) { -+ cursor_ = static_cast< ModuleEntity * >(ent.get())-> -+ createCursor(); -+ } -+ } -+ } -+} -+ -+rtl::Reference< MapCursor > AggregatingModule::createCursor() const { -+ return new AggregatingCursor(providers_, name_); - } - - } -@@ -139,23 +199,7 @@ rtl::Reference< Entity > Manager::findEntity(rtl::OUString const & name) const { - rtl::Reference< MapCursor > Manager::createCursor(rtl::OUString const & name) - const - { -- std::vector< rtl::Reference< MapCursor > > curs; -- for (std::vector< rtl::Reference< Provider > >::const_iterator i( -- providers_.begin()); -- i != providers_.end(); ++i) -- { -- if (name.isEmpty()) { -- curs.push_back((*i)->createRootCursor()); -- } else { -- rtl::Reference< Entity > ent((*i)->findEntity(name)); -- if (ent.is() && ent->getSort() == Entity::SORT_MODULE) { -- curs.push_back( -- static_cast< ModuleEntity * >(ent.get())->createCursor()); -- } -- } -- } -- return curs.empty() -- ? rtl::Reference< MapCursor >() : new AggregatingCursor(curs); -+ return new AggregatingCursor(providers_, name); - } - - Manager::~Manager() throw () {} --- -1.8.3.1 - diff --git a/0001-fdo-70201-sw-eliminate-no-extent-RSID-only-AUTOFMT-h.patch b/0001-fdo-70201-sw-eliminate-no-extent-RSID-only-AUTOFMT-h.patch deleted file mode 100644 index 1bf72b4..0000000 --- a/0001-fdo-70201-sw-eliminate-no-extent-RSID-only-AUTOFMT-h.patch +++ /dev/null @@ -1,45 +0,0 @@ -From a79a7f315a0a3bc8148a88bb1d3c6f83a4552094 Mon Sep 17 00:00:00 2001 -From: Michael Stahl -Date: Tue, 8 Oct 2013 18:37:35 +0200 -Subject: [PATCH] fdo#70201: sw: eliminate no-extent RSID-only AUTOFMT hints - -These are already filtered out in SwpHints::TryInsertHint(), but they -can be produced by a SwTxtNode::Update() following some deletion like in -SwTxtNode::ReplaceText() (or maybe CutImpl() and RstAttr() too?). - -So in order to prevent SwHistorySetTxt being created for these, -filter them out in SwpHints::MergePortions(), which has the advantage -that it's one location to change; probably filtering in Update() and -RstAttr() both would work too. - -(regression from 6db39dbd7378351f6476f6db25eb7110c9cfb291) - -Change-Id: I597a9ab290dcc3fb1b624dd2dca241c462acf256 -(cherry picked from commit 91159b1c31a7fd474ba0b97828f593604790ce3c) ---- - sw/source/core/txtnode/thints.cxx | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/sw/source/core/txtnode/thints.cxx b/sw/source/core/txtnode/thints.cxx -index 0893dac..34dac0a 100644 ---- a/sw/source/core/txtnode/thints.cxx -+++ b/sw/source/core/txtnode/thints.cxx -@@ -2528,6 +2528,15 @@ bool SwpHints::MergePortions( SwTxtNode& rNode ) - pHt->GetAutoFmt().GetStyleHandle()); - if ((pSet->Count() == 1) && pSet->GetItem(RES_CHRATR_RSID, false)) - { -+ // fdo#70201: eliminate no-extent RSID-only AUTOFMT -+ // could be produced by ReplaceText or (maybe?) RstAttr -+ if (*pHt->GetStart() == *pHt->GetEnd()) -+ { -+ SwpHintsArray::DeleteAtPos(i); // kill it without History! -+ SwTxtAttr::Destroy(pHt, rNode.GetDoc()->GetAttrPool()); -+ --i; -+ continue; -+ } - // fdo#52028: this one has _only_ RSID => ignore it completely - if (!pHt->IsFormatIgnoreStart() || !pHt->IsFormatIgnoreEnd()) - { --- -1.8.3.1 - diff --git a/0001-fdo-70968-Incorrect-rendering-of-Devanagari-short-i-.patch b/0001-fdo-70968-Incorrect-rendering-of-Devanagari-short-i-.patch deleted file mode 100644 index 391227f..0000000 --- a/0001-fdo-70968-Incorrect-rendering-of-Devanagari-short-i-.patch +++ /dev/null @@ -1,98 +0,0 @@ -From 71077148d442b3bbfeefd9a572942946c6a95823 Mon Sep 17 00:00:00 2001 -From: Khaled Hosny -Date: Wed, 30 Oct 2013 09:34:38 +0200 -Subject: [PATCH] fdo#70968: Incorrect rendering of Devanagari short 'i' vowel - -It seems that some Indic fonts assign 'mark' glyph class to combining -spacing marks (spacing not non spacing) so my reliance on the glyph -class to set the IS_DIACRITIC flags broke those fonts. This is a bandaid -to get around the issue, plus some long rant! (at this rate, I'll be -writing "The VCL haters handbook" pretty soon). - -Change-Id: I3ff892acf746d50182573f94e7e8c3c6f9464ae0 ---- - vcl/generic/glyphs/gcach_layout.cxx | 26 +++++++++++++++++++++----- - vcl/source/gdi/sallayout.cxx | 21 +++++++++++++++++++++ - 2 files changed, 42 insertions(+), 5 deletions(-) - -diff --git a/vcl/generic/glyphs/gcach_layout.cxx b/vcl/generic/glyphs/gcach_layout.cxx -index 4673931..7a8bfc9 100644 ---- a/vcl/generic/glyphs/gcach_layout.cxx -+++ b/vcl/generic/glyphs/gcach_layout.cxx -@@ -456,20 +456,36 @@ bool HbLayoutEngine::layout(ServerFontLayout& rLayout, ImplLayoutArgs& rArgs) - if (bInCluster) - nGlyphFlags |= GlyphItem::IS_IN_CLUSTER; - -+ // The whole IS_DIACRITIC concept is a stupid hack that was -+ // introduced ages ago to work around the utter brokenness of the -+ // way justification adjustments are applied (the DXArray fiasco). -+ // Since it is such a stupid hack, there is no sane way to directly -+ // map to concepts of the "outside" world, so we do some rather -+ // ugly hacks: -+ // * If the font has a GDEF table, we check for glyphs with mark -+ // glyph class which is sensible, except that some fonts -+ // (fdo#70968) assign mark class to spacing marks (which is wrong -+ // but usually harmless), so we try to sniff what HarfBuzz thinks -+ // about this glyph by checking if it gives it a zero advance -+ // width. -+ // * If the font has no GDEF table, we just check if the glyph has -+ // zero advance width, but this is stupid and can be wrong. A -+ // better way would to check the character's Unicode combining -+ // class, but unfortunately glyph gives combining marks the -+ // cluster value of its base character, so nCharPos will be -+ // pointing to the wrong character (but HarfBuzz might change -+ // this in the future). - bool bDiacritic = false; - if (hb_ot_layout_has_glyph_classes(mpHbFace)) - { - // the font has GDEF table -- if (hb_ot_layout_get_glyph_class(mpHbFace, nGlyphIndex) == HB_OT_LAYOUT_GLYPH_CLASS_MARK) -+ bool bMark = hb_ot_layout_get_glyph_class(mpHbFace, nGlyphIndex) == HB_OT_LAYOUT_GLYPH_CLASS_MARK; -+ if (bMark && pHbPositions[i].x_advance == 0) - bDiacritic = true; - } - else - { - // the font lacks GDEF table -- // HACK: if the resolved glyph advance is zero assume it is a -- // combining mark. The whole IS_DIACRITIC concept is a hack to -- // fix the other hacks we use to second-guess glyph advances in -- // ApplyDXArray and the likes and it needs to die - if (pHbPositions[i].x_advance == 0) - bDiacritic = true; - } -diff --git a/vcl/source/gdi/sallayout.cxx b/vcl/source/gdi/sallayout.cxx -index f395936..450ec232 100644 ---- a/vcl/source/gdi/sallayout.cxx -+++ b/vcl/source/gdi/sallayout.cxx -@@ -1018,6 +1018,27 @@ void GenericSalLayout::AdjustLayout( ImplLayoutArgs& rArgs ) - - // ----------------------------------------------------------------------- - -+// This DXArray thing is one of the stupidest ideas I have ever seen (I've been -+// told that it probably a one-to-one mapping of some Windows 3.1 API, which is -+// telling). To justify a text string, Writer calls OutputDevice::GetTextArray() -+// to get an array that maps input characters (not glyphs) to their absolute -+// position, GetTextArray() in turn calls SalLayout::FillDXArray() to get an -+// array of character widths that it converts to absolute positions. -+// -+// Writer would then apply justification adjustments to that array of absolute -+// character positions and return to OutputDevice, which eventually calls -+// ApplyDXArray(), which needs to extract the individual adjustments for each -+// character to apply it to corresponding glyphs, and since that information is -+// already lost it tries to do some heuristics to guess it again. Those -+// heuristics often fail, and have always been a source of all sorts of weird -+// text layout bugs, and instead of fixing the broken design a hack after hack -+// have been applied on top of it, making it a complete mess that nobody -+// understands. -+// -+// As you can see by now, this is utterly stupid, why Writer does not just send -+// us directly the advance width transformations it wants to apply to each -+// character instead of this whole mess? -+ - void GenericSalLayout::ApplyDXArray( ImplLayoutArgs& rArgs ) - { - if( m_GlyphItems.empty()) --- -1.8.3.1 - diff --git a/0001-resolved-fdo-56209-reviving-FilterFormulaParser.patch b/0001-resolved-fdo-56209-reviving-FilterFormulaParser.patch deleted file mode 100644 index 9427f62..0000000 --- a/0001-resolved-fdo-56209-reviving-FilterFormulaParser.patch +++ /dev/null @@ -1,405 +0,0 @@ -From 4a7096b9c8c0e6451fa0ced06143cb8a65ec10fc Mon Sep 17 00:00:00 2001 -From: Eike Rathke -Date: Mon, 28 Oct 2013 22:46:01 +0100 -Subject: [PATCH] resolved fdo#56209 reviving FilterFormulaParser - -First it was moved from oox to sc without carrying over the component -factory bits, then subsequent commits removed the remaining bits in -steps as it appeared to be unused: - -8ada1cd2846e5e60ad63250c68ddea3a9356546f -887d7945addeb823e0d3f783609c4e79d92ad4a7 -effda59a12cedd3cf200d2e9f5186a623b0855bb -f2fd2a66ee827024b31a310d67804cb7cb18d2da - -(cherry picked from commit 20e0afa76087e20f95247406d265a122263a8c6f) - -Backported. - -Change-Id: I445b11c95daff6f30b3654936d0f22a113158f97 -Reviewed-on: https://gerrit.libreoffice.org/6469 -Reviewed-by: David Tardon -Tested-by: David Tardon ---- - sc/Library_scfilt.mk | 1 + - sc/source/filter/excel/xestream.cxx | 10 ++ - sc/source/filter/inc/ooxformulaparser.hxx | 110 +++++++++++++++++ - sc/source/filter/oox/ooxformulaparser.cxx | 196 ++++++++++++++++++++++++++++++ - sc/util/scfilt.component | 3 + - 5 files changed, 320 insertions(+) - create mode 100644 sc/source/filter/inc/ooxformulaparser.hxx - create mode 100644 sc/source/filter/oox/ooxformulaparser.cxx - -diff --git a/sc/Library_scfilt.mk b/sc/Library_scfilt.mk -index 5b383c4..3cc4b1a 100644 ---- a/sc/Library_scfilt.mk -+++ b/sc/Library_scfilt.mk -@@ -188,6 +188,7 @@ $(eval $(call gb_Library_add_exception_objects,scfilt,\ - sc/source/filter/oox/formulabuffer \ - sc/source/filter/oox/formulaparser \ - sc/source/filter/oox/numberformatsbuffer \ -+ sc/source/filter/oox/ooxformulaparser \ - sc/source/filter/oox/pagesettings \ - sc/source/filter/oox/pivotcachebuffer \ - sc/source/filter/oox/pivotcachefragment \ -diff --git a/sc/source/filter/excel/xestream.cxx b/sc/source/filter/excel/xestream.cxx -index bf9c1d8..8421006 100644 ---- a/sc/source/filter/excel/xestream.cxx -+++ b/sc/source/filter/excel/xestream.cxx -@@ -1179,6 +1179,11 @@ namespace oox { namespace xls { - Sequence< OUString > SAL_CALL ExcelFilter_getSupportedServiceNames() throw(); - Reference< XInterface > SAL_CALL ExcelFilter_createInstance( - const Reference< XComponentContext >& rxContext ) throw( Exception ); -+ -+ OUString SAL_CALL OOXMLFormulaParser_getImplementationName() throw(); -+ Sequence< OUString > SAL_CALL OOXMLFormulaParser_getSupportedServiceNames() throw(); -+ Reference< XInterface > SAL_CALL OOXMLFormulaParser_create( -+ const Reference< XComponentContext >& rxContext ) throw(); - } } - - #ifdef __cplusplus -@@ -1201,6 +1206,11 @@ extern "C" - oox::xls::ExcelFilter_getSupportedServiceNames, ::cppu::createSingleComponentFactory, - 0, 0 - }, -+ { -+ oox::xls::OOXMLFormulaParser_create, oox::xls::OOXMLFormulaParser_getImplementationName, -+ oox::xls::OOXMLFormulaParser_getSupportedServiceNames, ::cppu::createSingleComponentFactory, -+ 0, 0 -+ }, - { 0, 0, 0, 0, 0, 0 } - }; - -diff --git a/sc/source/filter/inc/ooxformulaparser.hxx b/sc/source/filter/inc/ooxformulaparser.hxx -new file mode 100644 -index 0000000..e6c5797 ---- /dev/null -+++ b/sc/source/filter/inc/ooxformulaparser.hxx -@@ -0,0 +1,110 @@ -+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -+/* -+ * This file is part of the LibreOffice project. -+ * -+ * This Source Code Form is subject to the terms of the Mozilla Public -+ * License, v. 2.0. If a copy of the MPL was not distributed with this -+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. -+ * -+ * This file incorporates work covered by the following license notice: -+ * -+ * Licensed to the Apache Software Foundation (ASF) under one or more -+ * contributor license agreements. See the NOTICE file distributed -+ * with this work for additional information regarding copyright -+ * ownership. The ASF licenses this file to you under the Apache -+ * License, Version 2.0 (the "License"); you may not use this file -+ * except in compliance with the License. You may obtain a copy of -+ * the License at http://www.apache.org/licenses/LICENSE-2.0 . -+ */ -+ -+#ifndef OOX_XLS_OOXFORMULAPARSER_HXX -+#define OOX_XLS_OOXFORMULAPARSER_HXX -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+namespace oox { -+namespace xls { -+ -+class OOXMLFormulaParserImpl; -+ -+// ============================================================================ -+ -+typedef ::cppu::WeakImplHelper3< -+ ::com::sun::star::lang::XServiceInfo, -+ ::com::sun::star::lang::XInitialization, -+ ::com::sun::star::sheet::XFilterFormulaParser > OOXMLFormulaParser_BASE; -+ -+/** OOXML formula parser/compiler service for usage in ODF filters. */ -+class OOXMLFormulaParser : public OOXMLFormulaParser_BASE -+{ -+public: -+ explicit OOXMLFormulaParser(); -+ virtual ~OOXMLFormulaParser(); -+ -+ // com.sun.star.lang.XServiceInfo interface ------------------------------- -+ -+ virtual ::rtl::OUString SAL_CALL -+ getImplementationName() throw( ::com::sun::star::uno::RuntimeException ); -+ -+ virtual sal_Bool SAL_CALL -+ supportsService( const ::rtl::OUString& rService ) -+ throw( ::com::sun::star::uno::RuntimeException ); -+ -+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL -+ getSupportedServiceNames() throw( ::com::sun::star::uno::RuntimeException ); -+ -+ // com.sun.star.lang.XInitialization interface ---------------------------- -+ -+ virtual void SAL_CALL initialize( -+ const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& rArgs ) -+ throw( ::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException ); -+ -+ // com.sun.star.sheet.XFilterFormulaParser interface ---------------------- -+ -+ virtual ::rtl::OUString SAL_CALL -+ getSupportedNamespace() -+ throw( ::com::sun::star::uno::RuntimeException ); -+ -+ // com.sun.star.sheet.XFormulaParser interface ---------------------------- -+ -+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::sheet::FormulaToken > SAL_CALL -+ parseFormula( -+ const ::rtl::OUString& rFormula, -+ const ::com::sun::star::table::CellAddress& rReferencePos ) -+ throw( ::com::sun::star::uno::RuntimeException ); -+ -+ virtual ::rtl::OUString SAL_CALL -+ printFormula( -+ const ::com::sun::star::uno::Sequence< ::com::sun::star::sheet::FormulaToken >& rTokens, -+ const ::com::sun::star::table::CellAddress& rReferencePos ) -+ throw( ::com::sun::star::uno::RuntimeException ); -+ -+private: -+ typedef ::boost::shared_ptr< OOXMLFormulaParserImpl > ParserImplRef; -+ -+ ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > -+ mxComponent; -+ ParserImplRef mxParserImpl; /// Implementation of import parser. -+}; -+ -+css::uno::Reference< css::uno::XInterface > SAL_CALL OOXMLFormulaParser_create( -+ css::uno::Reference< css::uno::XComponentContext > const & context); -+ -+OUString SAL_CALL OOXMLFormulaParser_getImplementationName(); -+ -+css::uno::Sequence< OUString > SAL_CALL OOXMLFormulaParser_getSupportedServiceNames(); -+ -+// ============================================================================ -+ -+} // namespace xls -+} // namespace oox -+ -+#endif -+ -+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -diff --git a/sc/source/filter/oox/ooxformulaparser.cxx b/sc/source/filter/oox/ooxformulaparser.cxx -new file mode 100644 -index 0000000..9b91c79 ---- /dev/null -+++ b/sc/source/filter/oox/ooxformulaparser.cxx -@@ -0,0 +1,196 @@ -+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -+/* -+ * This file is part of the LibreOffice project. -+ * -+ * This Source Code Form is subject to the terms of the Mozilla Public -+ * License, v. 2.0. If a copy of the MPL was not distributed with this -+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. -+ * -+ * This file incorporates work covered by the following license notice: -+ * -+ * Licensed to the Apache Software Foundation (ASF) under one or more -+ * contributor license agreements. See the NOTICE file distributed -+ * with this work for additional information regarding copyright -+ * ownership. The ASF licenses this file to you under the Apache -+ * License, Version 2.0 (the "License"); you may not use this file -+ * except in compliance with the License. You may obtain a copy of -+ * the License at http://www.apache.org/licenses/LICENSE-2.0 . -+ */ -+ -+#include "ooxformulaparser.hxx" -+ -+#include -+#include "formulaparser.hxx" -+ -+namespace oox { -+namespace xls { -+ -+// ============================================================================ -+ -+using namespace ::com::sun::star::lang; -+using namespace ::com::sun::star::sheet; -+using namespace ::com::sun::star::table; -+using namespace ::com::sun::star::uno; -+ -+using ::rtl::OUString; -+ -+// ============================================================================ -+ -+class OOXMLFormulaParserImpl : private FormulaFinalizer -+{ -+public: -+ explicit OOXMLFormulaParserImpl( const Reference< XMultiServiceFactory >& rxModelFactory ); -+ -+ Sequence< FormulaToken > parseFormula( const OUString& rFormula, const CellAddress& rReferencePos ); -+ -+protected: -+ virtual const FunctionInfo* resolveBadFuncName( const OUString& rTokenData ) const; -+ -+private: -+ ApiParserWrapper maApiParser; -+}; -+ -+// ---------------------------------------------------------------------------- -+ -+OOXMLFormulaParserImpl::OOXMLFormulaParserImpl( const Reference< XMultiServiceFactory >& rxModelFactory ) : -+ FormulaFinalizer( OpCodeProvider( rxModelFactory, FILTER_OOXML, BIFF_UNKNOWN, true ) ), -+ maApiParser( rxModelFactory, *this ) -+{ -+} -+ -+Sequence< FormulaToken > OOXMLFormulaParserImpl::parseFormula( const OUString& rFormula, const CellAddress& rReferencePos ) -+{ -+ return finalizeTokenArray( maApiParser.parseFormula( rFormula, rReferencePos ) ); -+} -+ -+const FunctionInfo* OOXMLFormulaParserImpl::resolveBadFuncName( const OUString& rTokenData ) const -+{ -+ /* Try to parse calls to library functions. The format of such a function -+ call is assumed to be -+ "'\Library\'!". */ -+ -+ // the string has to start with an apostroph (followed by the library URL) -+ if( (rTokenData.getLength() >= 6) && (rTokenData[ 0 ] == '\'') ) -+ { -+ // library URL and function name are separated by an exclamation mark -+ sal_Int32 nExclamPos = rTokenData.lastIndexOf( '!' ); -+ if( (1 < nExclamPos) && (nExclamPos + 1 < rTokenData.getLength()) && (rTokenData[ nExclamPos - 1 ] == '\'') ) -+ { -+ // find the last backslash that separates library path and name -+ sal_Int32 nFileSep = rTokenData.lastIndexOf( '\\', nExclamPos - 2 ); -+ if( nFileSep > 1 ) -+ { -+ // find preceding backslash that separates the last directory name -+ sal_Int32 nDirSep = rTokenData.lastIndexOf( '\\', nFileSep - 1 ); -+ // function library is located in a directory called 'library' -+ if( (nDirSep > 0) && rTokenData.matchIgnoreAsciiCaseAsciiL( RTL_CONSTASCII_STRINGPARAM( "\\LIBRARY\\" ), nDirSep ) ) -+ { -+ // try to find a function info for the function name -+ OUString aFuncName = rTokenData.copy( nExclamPos + 1 ).toAsciiUpperCase(); -+ const FunctionInfo* pFuncInfo = getFuncInfoFromOoxFuncName( aFuncName ); -+ if( pFuncInfo && (pFuncInfo->meFuncLibType != FUNCLIB_UNKNOWN) ) -+ { -+ // check that the name of the library matches -+ OUString aLibName = rTokenData.copy( nFileSep + 1, nExclamPos - nFileSep - 2 ); -+ if( pFuncInfo->meFuncLibType == getFuncLibTypeFromLibraryName( aLibName ) ) -+ return pFuncInfo; -+ } -+ } -+ } -+ } -+ } -+ return 0; -+} -+ -+// ============================================================================ -+ -+Sequence< OUString > OOXMLFormulaParser_getSupportedServiceNames() -+{ -+ Sequence< OUString > aServiceNames( 1 ); -+ aServiceNames[ 0 ] = "com.sun.star.sheet.FilterFormulaParser"; -+ return aServiceNames; -+} -+ -+OUString OOXMLFormulaParser_getImplementationName() -+{ -+ return OUString( "com.sun.star.comp.oox.xls.FormulaParser"); -+} -+ -+Reference< XInterface > OOXMLFormulaParser_create( const Reference< XComponentContext >& ) -+{ -+ return static_cast< ::cppu::OWeakObject* >( new OOXMLFormulaParser ); -+} -+ -+// ============================================================================ -+ -+OOXMLFormulaParser::OOXMLFormulaParser() -+{ -+} -+ -+OOXMLFormulaParser::~OOXMLFormulaParser() -+{ -+} -+ -+// com.sun.star.lang.XServiceInfo interface ----------------------------------- -+ -+OUString SAL_CALL OOXMLFormulaParser::getImplementationName() throw( RuntimeException ) -+{ -+ return OOXMLFormulaParser_getImplementationName(); -+} -+ -+sal_Bool SAL_CALL OOXMLFormulaParser::supportsService( const OUString& rService ) throw( RuntimeException ) -+{ -+ const Sequence< OUString > aServices( OOXMLFormulaParser_getSupportedServiceNames() ); -+ const OUString* pArray = aServices.getConstArray(); -+ const OUString* pArrayEnd = pArray + aServices.getLength(); -+ return ::std::find( pArray, pArrayEnd, rService ) != pArrayEnd; -+} -+ -+Sequence< OUString > SAL_CALL OOXMLFormulaParser::getSupportedServiceNames() throw( RuntimeException ) -+{ -+ return OOXMLFormulaParser_getSupportedServiceNames(); -+} -+ -+// com.sun.star.lang.XInitialization interface -------------------------------- -+ -+void SAL_CALL OOXMLFormulaParser::initialize( const Sequence< Any >& rArgs ) throw( Exception, RuntimeException ) -+{ -+ OSL_ENSURE( rArgs.hasElements(), "OOXMLFormulaParser::initialize - missing arguments" ); -+ if( !rArgs.hasElements() ) -+ throw RuntimeException(); -+ mxComponent.set( rArgs[ 0 ], UNO_QUERY_THROW ); -+} -+ -+// com.sun.star.sheet.XFilterFormulaParser interface -------------------------- -+ -+OUString SAL_CALL OOXMLFormulaParser::getSupportedNamespace() throw( RuntimeException ) -+{ -+ return OUString( "http://schemas.microsoft.com/office/excel/formula"); -+} -+ -+// com.sun.star.sheet.XFormulaParser interface -------------------------------- -+ -+Sequence< FormulaToken > SAL_CALL OOXMLFormulaParser::parseFormula( -+ const OUString& rFormula, const CellAddress& rReferencePos ) throw( RuntimeException ) -+{ -+ if( !mxParserImpl ) -+ { -+ Reference< XMultiServiceFactory > xModelFactory( mxComponent, UNO_QUERY_THROW ); -+ mxParserImpl.reset( new OOXMLFormulaParserImpl( xModelFactory ) ); -+ } -+ return mxParserImpl->parseFormula( rFormula, rReferencePos ); -+} -+ -+OUString SAL_CALL OOXMLFormulaParser::printFormula( -+ const Sequence< FormulaToken >& /*rTokens*/, const CellAddress& /*rReferencePos*/ ) throw( RuntimeException ) -+{ -+ // not implemented -+ throw RuntimeException(); -+} -+ -+// ============================================================================ -+ -+} // namespace xls -+} // namespace oox -+ -+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -diff --git a/sc/util/scfilt.component b/sc/util/scfilt.component -index 13b884b..292fbd4 100644 ---- a/sc/util/scfilt.component -+++ b/sc/util/scfilt.component -@@ -26,4 +26,7 @@ - - - -+ -+ -+ - --- -1.8.3.1 - diff --git a/0001-rhbz-1031989-Accept-pt-in-addition-to-deprecated-pt.patch b/0001-rhbz-1031989-Accept-pt-in-addition-to-deprecated-pt.patch deleted file mode 100644 index d8373b9..0000000 --- a/0001-rhbz-1031989-Accept-pt-in-addition-to-deprecated-pt.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 58556215090bf12991cc8e52cc0f1095a0f44edf Mon Sep 17 00:00:00 2001 -From: Stephan Bergmann -Date: Tue, 19 Nov 2013 14:03:54 +0100 -Subject: [PATCH] rhbz#1031989 Accept --pt in addition to deprecated -pt - -Change-Id: I3593b3fc7e0ad405612216fb07e8632050b75cee -(cherry picked from commit 5cb10c4c99e46c97984e4e1c1bca5915f83f0a1d) ---- - desktop/source/app/cmdlineargs.cxx | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/desktop/source/app/cmdlineargs.cxx b/desktop/source/app/cmdlineargs.cxx -index ca92a8d..f9baa07 100644 ---- a/desktop/source/app/cmdlineargs.cxx -+++ b/desktop/source/app/cmdlineargs.cxx -@@ -186,7 +186,7 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier ) - bStartEvent = false; - bDisplaySpec = false; - } -- else if ( aArg.equalsIgnoreAsciiCase("-pt")) -+ else if ( oArg.equalsIgnoreAsciiCase("pt")) - { - // Print to special printer - bPrintToEvent = true; --- -1.8.3.1 - diff --git a/0001-select-sheet-menu-as-a-right-click-popup-to-the-prev.patch b/0001-select-sheet-menu-as-a-right-click-popup-to-the-prev.patch deleted file mode 100644 index fe5b49d..0000000 --- a/0001-select-sheet-menu-as-a-right-click-popup-to-the-prev.patch +++ /dev/null @@ -1,239 +0,0 @@ -From f4bfce94abc10fbd2d8b37113e27b36c1e79fc61 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Fri, 13 Sep 2013 20:13:25 +0100 -Subject: [PATCH] select sheet menu as a right-click popup to the prev/next - sheet dingus - -Change-Id: Ifc9baeabedeab526d040220e9e45f171b5353bcf ---- - include/svtools/tabbar.hxx | 6 ++++ - sc/source/ui/inc/tabcont.hxx | 3 ++ - sc/source/ui/view/tabcont.cxx | 69 ++++++++++++++++++++++++++++++--------- - svtools/source/control/tabbar.cxx | 34 +++++++++++++++++-- - 4 files changed, 93 insertions(+), 19 deletions(-) - -diff --git a/include/svtools/tabbar.hxx b/include/svtools/tabbar.hxx -index 0bf3be6..44bcc48 100644 ---- a/include/svtools/tabbar.hxx -+++ b/include/svtools/tabbar.hxx -@@ -369,6 +369,7 @@ private: - sal_Bool mbSelTextColor; - bool mbMirrored; - bool mbHasInsertTab; // if true, the tab bar has an extra tab at the end. -+ bool mbScrollAlwaysEnabled; - Link maSelectHdl; - Link maDoubleClickHdl; - Link maSplitHdl; -@@ -377,6 +378,7 @@ private: - Link maStartRenamingHdl; - Link maAllowRenamingHdl; - Link maEndRenamingHdl; -+ Link maScrollAreaContextHdl; - size_t maCurrentItemList; - - using Window::ImplInit; -@@ -529,6 +531,8 @@ public: - void SetStyle( WinBits nStyle ); - WinBits GetStyle() const { return mnWinStyle; } - -+ void SetScrollAlwaysEnabled(bool bScrollAlwaysEnabled); -+ - Size CalcWindowSizePixel() const; - - void SetSelectHdl( const Link& rLink ) { maSelectHdl = rLink; } -@@ -547,6 +551,8 @@ public: - const Link& GetAllowRenamingHdl() const { return maAllowRenamingHdl; } - void SetEndRenamingHdl( const Link& rLink ) { maEndRenamingHdl = rLink; } - const Link& GetEndRenamingHdl() const { return maEndRenamingHdl; } -+ void SetScrollAreaContextHdl( const Link& rLink ) { maScrollAreaContextHdl = rLink; } -+ const Link& GetScrollAreaContextHdl() const { return maScrollAreaContextHdl; } - - // accessibility - virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > CreateAccessible(); -diff --git a/sc/source/ui/inc/tabcont.hxx b/sc/source/ui/inc/tabcont.hxx -index c0bde9e..2c87f89 100644 ---- a/sc/source/ui/inc/tabcont.hxx -+++ b/sc/source/ui/inc/tabcont.hxx -@@ -46,6 +46,9 @@ private: - sal_uInt16 GetMaxId() const; - SCTAB GetPrivatDropPos(const Point& rPos ); - -+ DECL_LINK(ShowPageList, const CommandEvent*); -+ -+ void SwitchToPageId(sal_uInt16 nId); - protected: - virtual void Select(); - virtual void Command( const CommandEvent& rCEvt ); -diff --git a/sc/source/ui/view/tabcont.cxx b/sc/source/ui/view/tabcont.cxx -index 4fce113..4056748 100644 ---- a/sc/source/ui/view/tabcont.cxx -+++ b/sc/source/ui/view/tabcont.cxx -@@ -81,6 +81,39 @@ ScTabControl::ScTabControl( Window* pParent, ScViewData* pData ) : - - EnableEditMode(); - UpdateInputContext(); -+ -+ SetScrollAlwaysEnabled(true); -+ -+ SetScrollAreaContextHdl( LINK( this, ScTabControl, ShowPageList ) ); -+} -+ -+IMPL_LINK(ScTabControl, ShowPageList, const CommandEvent *, pEvent) -+{ -+ PopupMenu aPopup; -+ -+ sal_uInt16 nCurPageId = GetCurPageId(); -+ -+ ScDocument* pDoc = pViewData->GetDocument(); -+ SCTAB nCount = pDoc->GetTableCount(); -+ for (SCTAB i=0; iIsVisible(i)) -+ { -+ OUString aString; -+ if (pDoc->GetName(i, aString)) -+ { -+ sal_uInt16 nId = static_cast(i)+1; -+ aPopup.InsertItem(nId, aString, MIB_CHECKABLE); -+ if (nId == nCurPageId) -+ aPopup.CheckItem(nId); -+ } -+ } -+ } -+ -+ sal_uInt16 nItemId = aPopup.Execute( this, pEvent->GetMousePosPixel() ); -+ SwitchToPageId(nItemId); -+ -+ return 0; - } - - ScTabControl::~ScTabControl() -@@ -368,6 +401,25 @@ void ScTabControl::SetSheetLayoutRTL( sal_Bool bSheetRTL ) - nSelPageIdByMouse = TabBar::PAGE_NOT_FOUND; - } - -+void ScTabControl::SwitchToPageId(sal_uInt16 nId) -+{ -+ if (nId) -+ { -+ sal_Bool bAlreadySelected = IsPageSelected( nId ); -+ //make the clicked page the current one -+ SetCurPageId( nId ); -+ //change the selection when the current one is not already -+ //selected or part of a multi selection -+ if(!bAlreadySelected) -+ { -+ sal_uInt16 nCount = GetMaxId(); -+ -+ for (sal_uInt16 i=1; i<=nCount; i++) -+ SelectPage( i, i==nId ); -+ Select(); -+ } -+ } -+} - - void ScTabControl::Command( const CommandEvent& rCEvt ) - { -@@ -387,22 +439,7 @@ void ScTabControl::Command( const CommandEvent& rCEvt ) - // if multiple tables are selected and the one under the cursor - // is not part of them then unselect them - sal_uInt16 nId = GetPageId( rCEvt.GetMousePosPixel() ); -- if (nId) -- { -- sal_Bool bAlreadySelected = IsPageSelected( nId ); -- //make the clicked page the current one -- SetCurPageId( nId ); -- //change the selection when the current one is not already -- //selected or part of a multi selection -- if(!bAlreadySelected) -- { -- sal_uInt16 nCount = GetMaxId(); -- -- for (sal_uInt16 i=1; i<=nCount; i++) -- SelectPage( i, i==nId ); -- Select(); -- } -- } -+ SwitchToPageId(nId); - - // #i52073# OLE inplace editing has to be stopped before showing the sheet tab context menu - pViewSh->DeactivateOle(); -diff --git a/svtools/source/control/tabbar.cxx b/svtools/source/control/tabbar.cxx -index 4152f9d..c0b8059 100644 ---- a/svtools/source/control/tabbar.cxx -+++ b/svtools/source/control/tabbar.cxx -@@ -100,13 +100,33 @@ class ImplTabButton : public PushButton - { - public: - ImplTabButton( TabBar* pParent, WinBits nWinStyle = 0 ) : -- PushButton( pParent, nWinStyle | WB_RECTSTYLE | WB_SMALLSTYLE | WB_NOLIGHTBORDER | WB_NOPOINTERFOCUS ) {} -+ PushButton( pParent, nWinStyle | WB_RECTSTYLE | WB_SMALLSTYLE | WB_NOLIGHTBORDER | WB_NOPOINTERFOCUS ) {} - - TabBar* GetParent() const { return (TabBar*)Window::GetParent(); } - - virtual long PreNotify( NotifyEvent& rNEvt ); -+ -+ virtual void MouseButtonDown( const MouseEvent& rMEvt ); -+ -+ virtual void Command( const CommandEvent& rCEvt ); - }; - -+void ImplTabButton::MouseButtonDown( const MouseEvent& rMEvt ) -+{ -+ PushButton::MouseButtonDown(rMEvt); -+} -+ -+void ImplTabButton::Command( const CommandEvent& rCEvt ) -+{ -+ sal_uInt16 nCmd = rCEvt.GetCommand(); -+ if ( nCmd == COMMAND_CONTEXTMENU ) -+ { -+ TabBar *pParent = GetParent(); -+ pParent->maScrollAreaContextHdl.Call((void*)&rCEvt); -+ } -+ PushButton::Command(rCEvt); -+} -+ - // ======================================================================= - - long ImplTabButton::PreNotify( NotifyEvent& rNEvt ) -@@ -398,6 +418,8 @@ void TabBar::ImplInit( WinBits nWinStyle ) - mbSelColor = sal_False; - mbSelTextColor = sal_False; - mbMirrored = sal_False; -+ mbMirrored = sal_False; -+ mbScrollAlwaysEnabled = false; - - if ( nWinStyle & WB_3DTAB ) - mnOffY++; -@@ -752,19 +774,25 @@ void TabBar::ImplEnableControls() - return; - - // Buttons enablen/disblen -- sal_Bool bEnableBtn = mnFirstPos > 0; -+ sal_Bool bEnableBtn = mbScrollAlwaysEnabled || mnFirstPos > 0; - if ( mpFirstBtn ) - mpFirstBtn->Enable( bEnableBtn ); - if ( mpPrevBtn ) - mpPrevBtn->Enable( bEnableBtn ); - -- bEnableBtn = mnFirstPos < ImplGetLastFirstPos(); -+ bEnableBtn = mbScrollAlwaysEnabled || mnFirstPos < ImplGetLastFirstPos(); - if ( mpNextBtn ) - mpNextBtn->Enable( bEnableBtn ); - if ( mpLastBtn ) - mpLastBtn->Enable( bEnableBtn ); - } - -+void TabBar::SetScrollAlwaysEnabled(bool bScrollAlwaysEnabled) -+{ -+ mbScrollAlwaysEnabled = bScrollAlwaysEnabled; -+ ImplEnableControls(); -+} -+ - // ----------------------------------------------------------------------- - - void TabBar::ImplShowPage( sal_uInt16 nPos ) --- -1.8.3.1 - diff --git a/0001-update-libmwaw-to-0.2.0.patch b/0001-update-libmwaw-to-0.2.0.patch deleted file mode 100644 index 2be40b8..0000000 --- a/0001-update-libmwaw-to-0.2.0.patch +++ /dev/null @@ -1,1002 +0,0 @@ -From b253d44327d659b014a2b5adefa5e207aa6d11e7 Mon Sep 17 00:00:00 2001 -From: David Tardon -Date: Sun, 3 Nov 2013 09:34:36 +0100 -Subject: [PATCH] update libmwaw to 0.2.0 - -Change-Id: Ia66d7557e5056398e03ede9d54bf61317e84f2f3 ---- - RepositoryExternal.mk | 2 +- - configure.ac | 2 +- - download.lst | 4 +- - external/libmwaw/ExternalProject_libmwaw.mk | 1 + - writerperfect/source/writer/MWAWImportFilter.cxx | 831 +---------------------- - 5 files changed, 34 insertions(+), 806 deletions(-) - -diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk -index 568d2ac..0ace68b 100644 ---- a/RepositoryExternal.mk -+++ b/RepositoryExternal.mk -@@ -1576,19 +1576,19 @@ $(call gb_LinkTarget_set_include,$(1),\ - else # !SYSTEM_MWAW - - $(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \ -- mwaw-0.1 \ -+ mwaw-0.2 \ - )) - - define gb_LinkTarget__use_mwaw - $(call gb_LinkTarget_set_include,$(1),\ - -I$(call gb_UnpackedTarball_get_dir,libmwaw)/inc \ - $$(INCLUDE) \ - ) - $(call gb_LinkTarget_use_package,$(1),\ - libmwaw \ - ) - $(call gb_LinkTarget_use_static_libraries,$(1),\ -- mwaw-0.1 \ -+ mwaw-0.2 \ - ) - - endef -diff --git a/configure.ac b/configure.ac -index 7f992a5..57f14fb 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -7714,7 +7714,7 @@ libo_CHECK_SYSTEM_MODULE([libmspub],[MSPUB],[libmspub-0.0]) - dnl =================================================================== - dnl Check for system libmwaw - dnl =================================================================== --libo_CHECK_SYSTEM_MODULE([libmwaw],[MWAW],[libmwaw-0.1]) -+libo_CHECK_SYSTEM_MODULE([libmwaw],[MWAW],[libmwaw-0.2]) - - dnl =================================================================== - dnl Check for system libvisio -diff --git a/download.lst b/download.lst -index 9d21fed..28d92aa 100644 ---- a/download.lst -+++ b/download.lst -@@ -6,6 +6,6 @@ FREEHAND_MD5SUM := 496dd00028afcc19f896b01394769043 - MSPUB_MD5SUM := 1120705cd0f0d9bd5506360bf57b6c2e - export MSPUB_TARBALL := libmspub-0.0.6.tar.bz2 --MWAW_MD5SUM := 828dd03510791fbe037081a2b4a1a8ff --export MWAW_TARBALL := libmwaw-0.1.11.tar.bz2 -+MWAW_MD5SUM := d794625f156a9fb1c53b3f8a8aa13b5e -+export MWAW_TARBALL := libmwaw-0.2.0.tar.bz2 - VISIO_MD5SUM := 82628333418f101a20cd21f980cf9f40 - export VISIO_TARBALL := libvisio-0.0.31.tar.bz2 -diff --git a/libmwaw/ExternalProject_libmwaw.mk b/libmwaw/ExternalProject_libmwaw.mk -index a500192..b838339 100644 ---- a/libmwaw/ExternalProject_libmwaw.mk -+++ b/libmwaw/ExternalProject_libmwaw.mk -@@ -18,6 +18,7 @@ $(eval $(call gb_ExternalProject_register_targets,libmwaw,\ - $(eval $(call gb_ExternalProject_use_externals,libmwaw,\ - boost_headers \ - wpd \ -+ wpg \ - )) - - $(call gb_ExternalProject_get_state_target,libmwaw,build) : -diff --git a/writerperfect/source/writer/MWAWImportFilter.cxx b/writerperfect/source/writer/MWAWImportFilter.cxx -index ff4d7af..11d6cd8 100644 ---- a/writerperfect/source/writer/MWAWImportFilter.cxx -+++ b/writerperfect/source/writer/MWAWImportFilter.cxx -@@ -9,9 +9,6 @@ - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - --#include --#include -- - #include - #include - #include -@@ -31,8 +28,6 @@ - #include "common/WPXSvStream.hxx" - #include "MWAWImportFilter.hxx" - --#include -- - using namespace ::com::sun::star::uno; - using com::sun::star::uno::Sequence; - using com::sun::star::uno::Reference; -@@ -53,780 +48,12 @@ using com::sun::star::xml::sax::XAttributeList; - using com::sun::star::xml::sax::XDocumentHandler; - using com::sun::star::xml::sax::XParser; - --namespace --{ -- --//! Internal: creates the string "f pt" --static std::string getStringPt(double f) --{ -- std::stringstream s; -- s << float(f) << "pt"; -- return s.str(); --} -- --static double getSizeInPt(WPXProperty const &prop) --{ -- WPXString str = prop.getStr(); -- if (!str.len()) return 0.0; -- -- // we have a string, so we can not use getDouble -- std::istringstream iss(str.cstr()); -- double res = 0.0; -- iss >> res; -- -- // try to guess the type -- // point->pt, twip->*, inch -> in -- char c = str.len() ? str.cstr()[str.len()-1] : ' '; -- if (c == '*') res /= 1440.; -- else if (c == 't') res /= 72.; -- else if (c == 'n') ; -- else if (c == '%') -- { -- SAL_WARN("writerperfect", "MWAWObjectHandlerInternal::getSizeInPoint: called with a percent property"); -- } -- return res *= 72.; --} -- --static std::string getStringSizeInPt(WPXProperty const &prop) --{ -- return getStringPt(getSizeInPt(prop)); --} -- --static std::string getStyleName(int id) --{ -- std::stringstream s; -- s.str(""); -- s << "bd" << id+1; -- return s.str(); --} -- --} // anonymous namespace -- --namespace MWAWObjectHandlerInternal --{ --class Shape --{ --public: -- Shape() : m_type(BAD), m_styleId(-1), m_w(0), m_h(0), m_rw(0), m_rh(0), -- m_x(), m_y(), m_angle(), m_path("") -- { -- } -- bool read(const char *psName, WPXPropertyList const &xPropList, int styleId); -- bool write(OdfDocumentHandler *output) const; -- bool ok() const -- { -- return m_type != BAD; -- } -- --protected: -- bool drawLine(OdfDocumentHandler *output) const; -- bool drawRectangle(OdfDocumentHandler *output) const; -- bool drawCircle(OdfDocumentHandler *output) const; -- bool drawArc(OdfDocumentHandler *output) const; -- bool drawPath(OdfDocumentHandler *output) const; -- bool drawPolygon(OdfDocumentHandler *output, bool is2D) const; -- -- enum Type { LINE, RECTANGLE, CIRCLE, ARC, PATH, POLYLINE, POLYGON, BAD } m_type; -- -- int m_styleId; -- double m_w,m_h, m_rw, m_rh; -- std::vector m_x,m_y; -- std::vector m_angle; -- std::string m_path; --}; -- --class Document --{ --public: -- Document() : styles(), shapes(), m_w(0.0), m_h(0.0) {} -- bool open(const char *psName, WPXPropertyList const &xPropList); -- bool close(const char *psName); -- -- void characters(WPXString const &sCharacters); -- -- void write(OdfDocumentHandler *output); -- --protected: -- static void writeStyle(OdfDocumentHandler *output, -- WPXPropertyList const &style, int styleId); -- -- std::vector styles; -- std::vector shapes; -- --protected: -- double m_w, m_h; --}; -- --} -- --class MWAWObjectHandler : public MWAWPropertyHandler --{ --public: -- MWAWObjectHandler(OdfDocumentHandler *output) : MWAWPropertyHandler(), m_document(), m_output(output) { } -- ~MWAWObjectHandler() {}; -- -- void startDocument() -- { -- m_document= MWAWObjectHandlerInternal::Document(); -- }; -- void endDocument() -- { -- if (m_output) m_document.write(m_output); -- }; -- -- void startElement(const char *psName, const WPXPropertyList &xPropList) -- { -- m_document.open(psName, xPropList); -- } -- void endElement(const char *psName) -- { -- m_document.close(psName); -- } -- void characters(const WPXString &sCharacters) -- { -- m_document.characters(sCharacters); -- } -- --private: -- MWAWObjectHandler(MWAWObjectHandler const &); -- MWAWObjectHandler operator=(MWAWObjectHandler const &); -- -- MWAWObjectHandlerInternal::Document m_document; -- OdfDocumentHandler *m_output; --}; -- -- --static bool handleEmbeddedMWAWObject(const WPXBinaryData &data, OdfDocumentHandler *pHandler, const OdfStreamType) --{ -- MWAWObjectHandler tmpHandler(pHandler); -- tmpHandler.startDocument(); -- if (!tmpHandler.checkData(data) || !tmpHandler.readData(data)) return false; -- tmpHandler.endDocument(); -- return true; --} -- --bool MWAWObjectHandlerInternal::Shape::read(const char *psName, WPXPropertyList const &xPropList, int stylId) --{ -- m_styleId = stylId; -- m_type = BAD; -- if (strcmp(psName,"drawLine")==0) m_type = LINE; -- else if (strcmp(psName,"drawRectangle")==0) m_type = RECTANGLE; -- else if (strcmp(psName,"drawCircle")==0) m_type = CIRCLE; -- else if (strcmp(psName,"drawArc")==0) m_type = ARC; -- else if (strcmp(psName,"drawPath")==0) m_type = PATH; -- else if (strcmp(psName,"drawPolyline")==0) m_type = POLYLINE; -- else if (strcmp(psName,"drawPolygon")==0) m_type = POLYGON; -- else return false; -- -- WPXPropertyList::Iter i(xPropList); -- for (i .rewind(); i.next(); ) -- { -- if (strcmp(i.key(), "w") == 0) m_w = getSizeInPt(*i()); -- else if (strcmp(i.key(), "h") == 0) m_h = getSizeInPt(*i()); -- else if (strcmp(i.key(), "rw") == 0) m_rw = getSizeInPt(*i()); -- else if (strcmp(i.key(), "rh") == 0) m_rh = getSizeInPt(*i()); -- else if (strcmp(i.key(), "path") == 0) -- { -- if (i()->getStr().len()) -- m_path = i()->getStr().cstr(); -- } -- else -- { -- char const *key = i.key(); -- int len = (int) strlen(key); -- bool readOk = len > 1, generic = false; -- std::vector *which = 0L; -- if (readOk && strncmp(i.key(),"x",1)==0) -- { -- which = &m_x; -- key++; -- } -- else if (readOk && strncmp(i.key(),"y",1)==0) -- { -- which = &m_y; -- key++; -- } -- else if (readOk && strncmp(i.key(),"angle",5)==0) -- { -- which = &m_angle; -- key+=5; -- readOk = len>5; -- generic=true; -- } -- else readOk = false; -- -- long w(0); -- if (readOk) -- { -- char *res; -- w = strtol(key, &res, 10); -- readOk = (*res=='\0') && (w >= 0); -- } -- if (readOk) -- { -- if (int(which->size()) < w+1) which->resize(size_t(w)+1,0.0); -- double unit = generic ? 1./72.0 : 1.0; -- (*which)[size_t(w)] = getSizeInPt(*i()) * unit; -- } -- if (!readOk) -- { -- SAL_WARN("writerperfect", "MWAWObjectHandlerInternal::Shape::read: find an unknown key '" << i.key() << "'"); -- } -- } -- } -- -- return true; --} -- --bool MWAWObjectHandlerInternal::Shape::write(OdfDocumentHandler *output) const --{ -- if (!output) return true; -- if (m_type == LINE) return drawLine(output); -- else if (m_type == RECTANGLE) return drawRectangle(output); -- else if (m_type == CIRCLE) return drawCircle(output); -- else if (m_type == ARC) return drawArc(output); -- else if (m_type == PATH) return drawPath(output); -- else if (m_type == POLYLINE) return drawPolygon(output, false); -- else if (m_type == POLYGON) return drawPolygon(output, true); -- -- return false; --} -- --bool MWAWObjectHandlerInternal::Shape::drawLine(OdfDocumentHandler *output) const --{ -- if (m_x.size() < 2 || m_y.size() < 2) -- { -- SAL_WARN("writerperfect", "MWAWObjectHandlerInternal::Shape::drawLine: PB"); -- return false; -- } -- -- WPXPropertyList list; -- list.insert("draw:text-style-name","P1"); -- list.insert("draw:layer","layout"); -- list.insert("draw:style-name",getStyleName(m_styleId).c_str()); -- list.insert("svg:x1",getStringPt(m_x[0]).c_str()); -- list.insert("svg:y1",getStringPt(m_y[0]).c_str()); -- list.insert("svg:x2",getStringPt(m_x[1]).c_str()); -- list.insert("svg:y2",getStringPt(m_y[1]).c_str()); -- output->startElement("draw:line", list); -- output->endElement("draw:line"); -- return true; --} -- --bool MWAWObjectHandlerInternal::Shape::drawRectangle(OdfDocumentHandler *output) const --{ -- if (m_x.size() < 1 || m_y.size() < 1) -- { -- SAL_WARN("writerperfect", "MWAWObjectHandlerInternal::Shape::drawRectangle: PB"); -- return false; -- } -- -- WPXPropertyList list; -- list.insert("draw:text-style-name","P1"); -- list.insert("draw:layer","layout"); -- list.insert("draw:style-name",getStyleName(m_styleId).c_str()); -- list.insert("svg:x",getStringPt(m_x[0]).c_str()); -- list.insert("svg:y",getStringPt(m_y[0]).c_str()); -- list.insert("svg:width",getStringPt(m_w).c_str()); -- list.insert("svg:height",getStringPt(m_h).c_str()); -- -- if (m_rw <= 0.0 || m_rh <= 0.0 || m_w < 2*m_rw || m_h < 2*m_rh) -- { -- if (m_rw > 0.0 || m_rh > 0.0) -- { -- SAL_WARN("writerperfect", "MWAWObjectHandlerInternal::Shape::drawRectangle:: can only create a rectangle"); -- } -- output->startElement("draw:rect", list); -- output->endElement("draw:rect"); -- return true; -- } -- -- // ok, we draw a rond rect -- std::stringstream s; -- float const unit = 1.0;//35.3; -- s.str(""); -- -- double const minPt[] = { m_x[0] *unit, m_y[0] *unit }; -- double const maxPt[] = { (m_w+m_x[0]) *unit, (m_h+m_y[0]) *unit }; -- -- s << "0 0 " << int(maxPt[0]) << " " << int(maxPt[1]); -- list.insert("svg:viewBox", s.str().c_str()); -- -- double const W[] = { m_rw *unit, m_rh *unit }; -- double const xPt[] = { minPt[0]+W[0], maxPt[0]-W[0], maxPt[0], -- maxPt[0], maxPt[0], maxPt[0], -- maxPt[0]-W[0], minPt[0]+W[0], minPt[0], -- minPt[0], minPt[0], minPt[0], -- minPt[0]+W[0] -- }; -- double const yPt[] = { minPt[1], minPt[1], minPt[1], -- minPt[1]+W[1], maxPt[1]-W[1], maxPt[1], -- maxPt[1], maxPt[1], maxPt[1], -- maxPt[1]-W[1], minPt[1]+W[1], minPt[1], -- minPt[1] -- }; -- s.str(""); -- for (int i = 0; i < 13; i++) -- { -- if (i) s << " "; -- -- if (i == 0) s << "M"; -- else if ((i%3) == 2) s << "Q"; -- else if ((i%3) == 0); -- else s << "L"; -- s << int(xPt[i]) << " " << int(yPt[i]); -- } -- s << "Z"; -- list.insert("svg:d", s.str().c_str()); -- -- output->startElement("draw:path", list); -- output->endElement("draw:path"); -- return true; --} -- --bool MWAWObjectHandlerInternal::Shape::drawCircle(OdfDocumentHandler *output) const --{ -- if (m_x.size() < 1 || m_y.size() < 1) -- { -- SAL_WARN("writerperfect", "MWAWObjectHandlerInternal::Shape::drawCircle: PB"); -- return false; -- } -- -- WPXPropertyList list; -- list.insert("draw:text-style-name","P1"); -- list.insert("draw:layer","layout"); -- list.insert("draw:style-name",getStyleName(m_styleId).c_str()); -- list.insert("svg:x",getStringPt(m_x[0]).c_str()); -- list.insert("svg:y",getStringPt(m_y[0]).c_str()); -- list.insert("svg:width",getStringPt(m_w).c_str()); -- list.insert("svg:height",getStringPt(m_h).c_str()); -- if (m_w < m_h || m_w > m_h) -- { -- output->startElement("draw:ellipse", list); -- output->endElement("draw:ellipse"); -- } -- else -- { -- output->startElement("draw:circle", list); -- output->endElement("draw:circle"); -- } -- return true; --} -- --bool MWAWObjectHandlerInternal::Shape::drawArc(OdfDocumentHandler *output) const --{ -- if (m_angle.size() < 2) -- { -- SAL_INFO("writerperfect", "MWAWObjectHandlerInternal::Shape::drawArc: angle are filled, call draw Circle"); -- return drawCircle(output); -- } -- if (m_x.size() < 1 || m_y.size() < 1) -- { -- SAL_WARN("writerperfect", "MWAWObjectHandlerInternal::Shape::drawArc: PB"); -- return false; -- } -- -- WPXPropertyList list; -- list.insert("draw:text-style-name","P1"); -- list.insert("draw:layer","layout"); -- list.insert("draw:style-name",getStyleName(m_styleId).c_str()); -- list.insert("svg:x",getStringPt(m_x[0]).c_str()); -- list.insert("svg:y",getStringPt(m_y[0]).c_str()); -- list.insert("svg:width",getStringPt(m_w).c_str()); -- list.insert("svg:height",getStringPt(m_h).c_str()); -- list.insert("draw:kind","arc"); -- -- std::stringstream s; -- // odg prefers angle between -360 and +360, ... -- int minAngl = int(m_angle[0]), maxAngl = int(m_angle[1]); -- if (minAngl >= 360 || maxAngl >= 360) -- { -- minAngl -= 360; -- maxAngl -= 360; -- } -- s.str(""); -- s << minAngl; -- list.insert("draw:start-angle", s.str().c_str()); -- s.str(""); -- s << maxAngl; -- list.insert("draw:end-angle", s.str().c_str()); -- -- if (m_w < m_h || m_w > m_h) -- { -- output->startElement("draw:ellipse", list); -- output->endElement("draw:ellipse"); -- } -- else -- { -- output->startElement("draw:circle", list); -- output->endElement("draw:circle"); -- } -- return true; --} -- --bool MWAWObjectHandlerInternal::Shape::drawPolygon(OdfDocumentHandler *output, bool is2D) const --{ -- if (m_x.size() < 1 || m_y.size() != m_x.size()) -- { -- SAL_WARN("writerperfect", "MWAWObjectHandlerInternal::Shape::drawPolygon: PB"); -- return false; -- } -- std::stringstream s; -- WPXPropertyList list; -- list.insert("draw:text-style-name","P1"); -- list.insert("draw:layer","layout"); -- list.insert("draw:style-name","bd1"); -- list.insert("svg:x","0pt"); -- list.insert("svg:y","0pt"); -- list.insert("svg:width",getStringPt(m_w).c_str()); -- list.insert("svg:height",getStringPt(m_h).c_str()); -- -- size_t numPt = m_x.size(); -- -- float const unit = 1; //35.2777; // convert in centimeters -- s.str(""); -- s << "0 0 " << int(m_w*unit) << " " << int(m_h*unit); -- list.insert("svg:viewBox", s.str().c_str()); -- -- s.str(""); -- for (size_t i = 0; i < numPt; i++) -- { -- if (i) s << " "; -- s << int(m_x[i]*unit) << "," << int(m_y[i]*unit); -- } -- list.insert("draw:points", s.str().c_str()); -- if (!is2D) -- { -- output->startElement("draw:polyline", list); -- output->endElement("draw:polyline"); -- } -- else -- { -- output->startElement("draw:polygon", list); -- output->endElement("draw:polygon"); -- } -- return true; --} -- --bool MWAWObjectHandlerInternal::Shape::drawPath(OdfDocumentHandler *output) const --{ -- if (m_path.length()==0 || m_w <= 0 || m_h <= 0) -- { -- SAL_WARN("writerperfect", "MWAWObjectHandlerInternal::Shape::drawPath: PB"); -- return false; -- } -- -- WPXPropertyList list; -- list.insert("draw:text-style-name","P1"); -- list.insert("draw:layer","layout"); -- list.insert("draw:style-name",getStyleName(m_styleId).c_str()); -- list.insert("svg:x","0pt"); -- list.insert("svg:y","0pt"); -- list.insert("svg:width",getStringPt(m_w).c_str()); -- list.insert("svg:height",getStringPt(m_h).c_str()); -- std::stringstream s; -- s << "0 0 " << int(m_w) << " " << int(m_h); -- list.insert("svg:viewBox", s.str().c_str()); -- list.insert("svg:d",m_path.c_str()); -- -- output->startElement("draw:path", list); -- output->endElement("draw:path"); -- return true; --} -- -- --bool MWAWObjectHandlerInternal::Document::open(const char *psName, WPXPropertyList const &xPropList) --{ -- if (strncmp(psName,"libmwaw:", 8) == 0) -- psName += 8; -- else -- { -- SAL_WARN("writerperfect", "MWAWObjectHandlerInternal::Document::open Unknown tag '" << psName << "'.." ); -- return false; -- } -- if (strcmp(psName, "document") == 0) -- { -- m_w = m_h = 0.; -- WPXPropertyList::Iter i(xPropList); -- for (i .rewind(); i.next(); ) -- { -- if (strcmp(i.key(), "w") == 0) m_w = getSizeInPt(*i()); -- else if (strcmp(i.key(), "h") == 0) m_h = getSizeInPt(*i()); -- else -- { -- SAL_WARN("writerperfect", "MWAWObjectHandlerInternal::Document::open: find an unknown key '" << i.key() << "'"); -- } -- } -- return true; -- } -- else if (strcmp(psName, "graphicStyle") == 0) -- { -- styles.push_back(xPropList); -- return true; -- } -- else -- { -- int id = int(styles.size()); -- Shape shape; -- if (shape.read(psName, xPropList, id ? id-1 : 0)) -- { -- if (id == 0) -- { -- SAL_WARN("writerperfect", "MWAWObjectHandlerInternal::Document::open shape created without style.."); -- styles.push_back(WPXPropertyList()); -- } -- shapes.push_back(shape); -- return true; -- } -- } -- SAL_WARN("writerperfect", "MWAWObjectHandlerInternal::Document::open Unknown tag '" << psName << "'.."); -- return false; --} -- --bool MWAWObjectHandlerInternal::Document::close(const char *) --{ -- return true; --} -- --void MWAWObjectHandlerInternal::Document::characters(WPXString const &) -+static bool handleEmbeddedMWAWObject(const WPXBinaryData &data, OdfDocumentHandler *pHandler, const OdfStreamType streamType) - { -- SAL_WARN("writerperfect", "Document::characters must NOT be called.."); -+ OdgGenerator exporter(pHandler, streamType); -+ return MWAWDocument::decodeGraphic(data, &exporter); - } - --void MWAWObjectHandlerInternal::Document::write(OdfDocumentHandler *output) --{ -- if (!output) return; -- WPXPropertyList list; -- std::stringstream s; -- -- list.clear(); -- list.insert("office:mimetype","application/vnd.oasis.opendocument.graphics"); -- list.insert("office:version", "1.0"); -- -- list.insert("xmlns:config", "urn:oasis:names:tc:opendocument:xmlns:config:1.0"); -- list.insert("xmlns:dc", "http://purl.org/dc/elements/1.1/"); -- list.insert("xmlns:draw", "urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"); -- list.insert("xmlns:fo", "urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"); -- list.insert("xmlns:office", "urn:oasis:names:tc:opendocument:xmlns:office:1.0"); -- list.insert("xmlns:ooo", "http://openoffice.org/2004/office"); -- list.insert("xmlns:style", "urn:oasis:names:tc:opendocument:xmlns:style:1.0"); -- list.insert("xmlns:svg", "urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"); -- list.insert("xmlns:text", "urn:oasis:names:tc:opendocument:xmlns:text:1.0"); -- -- output->startElement("office:document", list); -- -- // SETTINGS -- { -- list.clear(); -- output->startElement("office:settings", list); -- list.clear(); -- list.insert("config:name","ooo:view-settings"); -- output->startElement("config:config-item-set", list); -- -- // - Top -- list.clear(); -- list.insert("config:name","VisibleAreaTop"); -- list.insert("config:type","int"); -- output->startElement("config:config-item", list); -- output->characters("0"); -- -- output->endElement("config:config-item"); -- // - Left -- list.clear(); -- list.insert("config:name","VisibleAreaLeft"); -- list.insert("config:type","int"); -- output->startElement("config:config-item", list); -- output->characters("0"); -- output->endElement("config:config-item"); -- // - Width -- list.clear(); -- list.insert("config:name","VisibleAreaWidth"); -- list.insert("config:type","int"); -- s.str(""); -- s << int(m_w*35.2777); // *2540/72. why ? -- output->startElement("config:config-item", list); -- output->characters(s.str().c_str()); -- output->endElement("config:config-item"); -- // - Height -- list.clear(); -- list.insert("config:name","VisibleAreaHeight"); -- list.insert("config:type","int"); -- s.str(""); -- s << int(m_h*35.2777); // *2540/72. why ? -- output->startElement("config:config-item", list); -- output->characters(s.str().c_str()); -- output->endElement("config:config-item"); -- -- output->endElement("config:config-item-set"); -- output->endElement("office:settings"); -- } -- -- // STYLES -- { -- list.clear(); -- output->startElement("office:styles", list); -- // - a gradient -- list.clear(); -- list.insert("draw:angle","0"); -- list.insert("draw:border","0%"); -- list.insert("draw:end-color","#000000"); -- list.insert("draw:end-intensity","100%"); -- list.insert("draw:name","Gradient_1"); -- list.insert("draw:start-color","#000000"); -- list.insert("draw:start-intensity","100%"); -- list.insert("draw:style","linear"); -- output->startElement("draw:gradient", list); -- output->endElement("draw:gradient"); -- // - an arrow -- list.clear(); -- list.insert("draw:name","Arrow"); -- list.insert("svg:viewBox","0 0 20 30"); -- list.insert("svg:d","m10 0-10 30h20z"); -- output->startElement("draw:marker", list); -- output->endElement("draw:marker"); -- -- output->endElement("office:styles"); -- } -- -- // AUTOMATIC STYLES -- { -- list.clear(); -- output->startElement("office:automatic-styles", list); -- -- // - PM0 -- { -- list.clear(); -- list.insert("style:name","PM0"); -- output->startElement("style:page-layout", list); -- list.clear(); -- list.insert("fo:margin-bottom","0in"); -- list.insert("fo:margin-left","0in"); -- list.insert("fo:margin-right","0in"); -- list.insert("fo:margin-top","0in"); -- list.insert("fo:page-height",getStringPt(m_h).c_str()); -- list.insert("fo:page-width",getStringPt(m_w).c_str()); -- list.insert("style:print-orientation","portrait"); -- output->startElement("style:page-layout-properties", list); -- output->endElement("style:page-layout-properties"); -- output->endElement("style:page-layout"); -- } -- -- // - dp1 -- { -- list.clear(); -- list.insert("style:family","drawing-page"); -- list.insert("style:name","dp1"); -- output->startElement("style:style", list); -- list.clear(); -- list.insert("draw:fill","none"); -- output->startElement("style:drawing-page-properties", list); -- output->endElement("style:drawing-page-properties"); -- output->endElement("style:style"); -- } -- -- // -- the styles -- for (size_t i = 0; i < styles.size() ; i++) -- writeStyle(output, styles[i], int(i)); -- -- output->endElement("office:automatic-styles"); -- } -- -- // MASTER STYLES -- { -- list.clear(); -- output->startElement("office:master-styles", list); -- list.clear(); -- list.insert("draw:style-name","dp1"); -- list.insert("style:name","Default"); -- list.insert("style:page-layout-name","PM0"); -- output->startElement("style:master-page", list); -- output->endElement("style:master-page"); -- output->endElement("office:master-styles"); -- } -- -- // BODY -- { -- list.clear(); -- output->startElement("office:body", list); -- output->startElement("office:drawing", list); -- { -- list.clear(); -- list.insert("draw:master-page-name","Default"); -- list.insert("draw:name","page1"); -- list.insert("draw:style-name","dp1"); -- -- output->startElement("draw:page", list); -- -- for (size_t i = 0; i < shapes.size() ; i++) -- shapes[i].write(output); -- -- output->endElement("draw:page"); -- } -- output->endElement("office:drawing"); -- output->endElement("office:body"); -- } -- output->endElement("office:document"); --} -- --void MWAWObjectHandlerInternal::Document::writeStyle (OdfDocumentHandler *output, WPXPropertyList const &style, int styleId) --{ -- if (!output) return; -- -- WPXPropertyList list; -- list.clear(); -- list.insert("style:family","graphic"); -- list.insert("style:name",getStyleName(styleId).c_str()); -- list.insert("style:parent-style-name","standard"); -- output->startElement("style:style", list); -- { -- list.clear(); -- -- WPXPropertyList::Iter i(style); -- for (i .rewind(); i.next(); ) -- { -- if (strcmp(i.key(), "lineColor") == 0) -- list.insert("svg:stroke-color", i()->getStr().cstr()); -- else if (strcmp(i.key(), "lineWidth") == 0) -- list.insert("svg:stroke-width", getStringSizeInPt(*i()).c_str()); -- else if (strcmp(i.key(), "lineFill") == 0) -- list.insert("draw:stroke", i()->getStr().cstr()); -- else if (strcmp(i.key(), "surfaceColor") == 0) -- list.insert("draw:fill-color", i()->getStr().cstr()); -- else if (strcmp(i.key(), "surfaceFill") == 0) -- list.insert("draw:fill", i()->getStr().cstr()); -- else if (strcmp(i.key(), "startArrow") == 0) -- { -- if (strcmp(i()->getStr().cstr(), "true") == 0) -- { -- list.insert("draw:marker-start", "Arrow"); -- list.insert("draw:marker-start-center", "false"); -- } -- } -- else if (strcmp(i.key(), "startArrowWidth") == 0) -- list.insert("draw:marker-start-width", getStringSizeInPt(*i()).c_str()); -- else if (strcmp(i.key(), "endArrow") == 0) -- { -- if (strcmp(i()->getStr().cstr(), "true") == 0) -- { -- list.insert("draw:marker-end", "Arrow"); -- list.insert("draw:marker-end-center", "false"); -- } -- } -- else if (strcmp(i.key(), "endArrowWidth") == 0) -- list.insert("draw:marker-end-width", getStringSizeInPt(*i()).c_str()); -- else -- { -- SAL_WARN("writerperfect", "MWAWObjectHandlerInternal::Document::writeStyle: find an unknown key '" << i.key() << "'"); -- } -- } -- -- output->startElement("style:graphic-properties", list); -- output->endElement("style:graphic-properties"); -- } -- output->endElement("style:style"); --} -- -- - sal_Bool SAL_CALL MWAWImportFilter::importImpl( const Sequence< ::com::sun::star::beans::PropertyValue > &aDescriptor ) - throw (RuntimeException) - { -@@ -864,7 +91,7 @@ throw (RuntimeException) - - OdtGenerator collector(&xHandler, ODF_FLAT_XML); - collector.registerEmbeddedObjectHandler("image/mwaw-odg", &handleEmbeddedMWAWObject); -- if (MWAW_OK == MWAWDocument::parse(&input, &collector)) -+ if (MWAWDocument::MWAW_R_OK == MWAWDocument::parse(&input, &collector)) - return sal_True; - return sal_False; - } -@@ -895,9 +122,9 @@ throw( com::sun::star::uno::RuntimeException ) - { - SAL_INFO("writerperfect", "MWAWImportFilter::detect"); - -- MWAWConfidence confidence = MWAW_CONFIDENCE_NONE; -- MWAWDocument::DocumentType docType = MWAWDocument::UNKNOWN; -- MWAWDocument::DocumentKind docKind = MWAWDocument::K_UNKNOWN; -+ MWAWDocument::Confidence confidence = MWAWDocument::MWAW_C_NONE; -+ MWAWDocument::Type docType = MWAWDocument::MWAW_T_UNKNOWN; -+ MWAWDocument::Kind docKind = MWAWDocument::MWAW_K_UNKNOWN; - OUString sTypeName; - sal_Int32 nLength = Descriptor.getLength(); - sal_Int32 location = nLength; -@@ -918,69 +145,69 @@ throw( com::sun::star::uno::RuntimeException ) - - confidence = MWAWDocument::isFileFormatSupported(&input, docType, docKind); - -- if ((confidence == MWAW_CONFIDENCE_EXCELLENT) || (confidence == MWAW_CONFIDENCE_GOOD)) -+ if (confidence == MWAWDocument::MWAW_C_EXCELLENT) - { -- if ( docKind == MWAWDocument::K_TEXT ) -+ if ( docKind == MWAWDocument::MWAW_K_TEXT ) - { - switch (docType) - { -- case MWAWDocument::ACT: // Acta (nothing done ) -+ case MWAWDocument::MWAW_T_ACTA: - break; -- case MWAWDocument::CW: // ClarisWorks/AppleWorks document (basic) -+ case MWAWDocument::MWAW_T_CLARISWORKS: - sTypeName = "writer_ClarisWorks"; - break; -- case MWAWDocument::DM: // DocMaker (v4) -+ case MWAWDocument::MWAW_T_DOCMAKER: - sTypeName = "writer_DocMaker"; - break; -- case MWAWDocument::ED: // eDOC (v2) -+ case MWAWDocument::MWAW_T_EDOC: - sTypeName = "writer_eDoc_Document"; - break; -- case MWAWDocument::FULLW: // FullWrite Professional (basic) -+ case MWAWDocument::MWAW_T_FULLWRITE: - sTypeName = "writer_FullWrite_Professional"; - break; -- case MWAWDocument::HMAC: // HanMac Word-K (basic done) -+ case MWAWDocument::MWAW_T_HANMACWORDK: - sTypeName = "writer_HanMac_Word_K"; - break; -- case MWAWDocument::HMACJ: // HanMac Word-J ( almost nothing done for J document) -+ case MWAWDocument::MWAW_T_HANMACWORDJ: - // sTypeName = "writer_HanMac_Word_J"; - break; -- case MWAWDocument::LWTEXT: // LightWayText ( only v4.5 Mac format ) -+ case MWAWDocument::MWAW_T_LIGHTWAYTEXT: - sTypeName = "writer_LightWayText"; - break; -- case MWAWDocument::MARIW: // Mariner Write ( only v1.6-v3.5 Mac Classic) -+ case MWAWDocument::MWAW_T_MARINERWRITE: - sTypeName = "writer_Mariner_Write"; - break; -- case MWAWDocument::MINDW: // MindWrite -+ case MWAWDocument::MWAW_T_MINDWRITE: - sTypeName = "writer_MindWrite"; - break; -- case MWAWDocument::MW: // MacWrite document -+ case MWAWDocument::MWAW_T_MACWRITE: - sTypeName = "writer_MacWrite"; - break; -- case MWAWDocument::MWPRO: // MacWriteII or MacWritePro document -+ case MWAWDocument::MWAW_T_MACWRITEPRO: - sTypeName = "writer_MacWritePro"; - break; -- case MWAWDocument::MSWORD: // MSWord document (v4 v5: basic done) -+ case MWAWDocument::MWAW_T_MICROSOFTWORD: - sTypeName = "writer_Mac_Word"; - break; -- case MWAWDocument::MSWORKS: // MSWorks document (v1 v2) -+ case MWAWDocument::MWAW_T_MICROSOFTWORKS: - sTypeName = "writer_Mac_Works"; - break; -- case MWAWDocument::NISUSW: // Nisus Writer document: v3.4-v6.5 -+ case MWAWDocument::MWAW_T_NISUSWRITER: - sTypeName = "writer_Nisus_Writer"; - break; -- case MWAWDocument::TEACH: // TeachText or SimpleText: v1 -+ case MWAWDocument::MWAW_T_TEACHTEXT: - sTypeName = "writer_TeachText"; - break; -- case MWAWDocument::TEDIT: // Tex-Edit v2 -+ case MWAWDocument::MWAW_T_TEXEDIT: - sTypeName = "writer_TexEdit"; - break; -- case MWAWDocument::WNOW: // WriteNow -+ case MWAWDocument::MWAW_T_WRITENOW: - sTypeName = "writer_WriteNow"; - break; -- case MWAWDocument::WPLUS: // writerplus document -+ case MWAWDocument::MWAW_T_WRITERPLUS: - sTypeName = "writer_WriterPlus"; - break; -- case MWAWDocument::ZWRT: // Z-Write : v1.3 -+ case MWAWDocument::MWAW_T_ZWRITE: - sTypeName = "writer_ZWrite"; - break; - default: --- -1.8.3.1 - diff --git a/0002-Related-rhbz-968892-discard-impossible-languages-for.patch b/0002-Related-rhbz-968892-discard-impossible-languages-for.patch deleted file mode 100644 index 36eadbe..0000000 --- a/0002-Related-rhbz-968892-discard-impossible-languages-for.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 0e89a49f67f58e0942ed4aea393ac37e22d9e12d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Wed, 5 Jun 2013 15:59:50 +0100 -Subject: [PATCH] Related: rhbz#968892 discard impossible languages for oriya - script fallback - -Change-Id: I2fa1a127fbd2f905a89f0c30898ad56099fa8df1 ---- - vcl/generic/fontmanager/fontconfig.cxx | 28 ++++++++++++++++++---------- - 1 file changed, 18 insertions(+), 10 deletions(-) - -diff --git a/vcl/generic/fontmanager/fontconfig.cxx b/vcl/generic/fontmanager/fontconfig.cxx -index ff471fa..a305095 100644 ---- a/vcl/generic/fontmanager/fontconfig.cxx -+++ b/vcl/generic/fontmanager/fontconfig.cxx -@@ -860,19 +860,27 @@ namespace - OUString sLang = rLangTag.getLanguage(); - switch (eScript) - { -+ //http://en.wiktionary.org/wiki/Category:Oriya_script_languages -+ case USCRIPT_ORIYA: -+ bIsImpossible = -+ sLang != "or" && -+ sLang != "kxv"; -+ break; -+ //http://en.wiktionary.org/wiki/Category:Telugu_script_languages - case USCRIPT_TELUGU: -- bIsImpossible = sLang != "te"; -+ bIsImpossible = -+ sLang != "te" && -+ sLang != "gon" && -+ sLang != "kfc"; - break; -+ //http://en.wiktionary.org/wiki/Category:Bengali_script_languages - case USCRIPT_BENGALI: -- bIsImpossible = sLang != "bn" && -- sLang != "as" && sLang != "mkb" && -- sLang != "kfv" && sLang != "ccp" && -- sLang != "tnv" && sLang != "ctg" && -- sLang != "haj" && sLang != "ksy" && -- sLang != "rkt" && sLang != "rjs" && -- sLang != "rhg" && sLang != "syl" && -- sLang != "kyv" && sLang != "zrg" && -- sLang != "nhh"; -+ bIsImpossible = -+ sLang != "bn" && -+ sLang != "as" && -+ sLang != "bpy" && -+ sLang != "ctg" && -+ sLang != "sa"; - break; - default: - break; --- -1.8.1.4 - diff --git a/libreoffice.spec b/libreoffice.spec index 7179a65..fc965e5 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -1,9 +1,12 @@ +# temporarily disable debuginfo compression because this box cannot +# handle the memory load .-) +%define _find_debuginfo_dwz_opts %{nil} # download path contains version without the last (fourth) digit -%define libo_version 4.1.3 +%define libo_version 4.2.0 # Should contain .alphaX / .betaX, if this is pre-release (actually # pre-RC) version. The pre-release string is part of tarball file names, # so we need a way to define it easily at one place. -%define libo_prerelease %{nil} +%define libo_prerelease .beta1 # rhbz#715152 state vendor %if 0%{?rhel} %define vendoroption --with-vendor="Red Hat, Inc." @@ -42,8 +45,8 @@ Summary: Free Software Productivity Suite Name: libreoffice Epoch: 1 -Version: %{libo_version}.2 -Release: 5%{?libo_prerelease}%{?dist} +Version: %{libo_version}.0 +Release: 1%{?libo_prerelease}%{?dist} License: (MPLv1.1 or LGPLv3+) and LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and Public Domain and ASL 2.0 and Artistic and MPLv2.0 Group: Applications/Productivity URL: http://www.libreoffice.org/default/ @@ -82,8 +85,11 @@ Source26: %{external_url}/ea2acaf140ae40a87a952caa75184f4d-liborcus-0.5.1. Source27: %{external_url}/36271d3fa0d9dec1632029b6d7aac925-liblangtag-0.5.1.tar.bz2 Source28: %{external_url}/f02578f5218f217a9f20e9c30e119c6a-boost_1_44_0.tar.bz2 Source29: %{external_url}/c48827713e93539dc7285f9e86ffbdc5-harfbuzz-0.9.17.tar.bz2 -Source30: %{external_url}/8473296c671b6e3dd8197f4145e0854b-libodfgen-0.0.2.tar.bz2 +Source30: %{external_url}/libodfgen-0.0.3.tar.bz2 Source31: %{external_url}/libmwaw-0.2.0.tar.bz2 +Source32: %{external_url}/libetonyek-0.0.1.tar.bz2 +Source33: %{external_url}/libfreehand-0.0.0.tar.bz2 +Source34: %{external_url}/libe-book-0.0.2.tar.bz2 %endif # build tools @@ -122,6 +128,8 @@ BuildRequires: cups-devel BuildRequires: dbus-glib-devel BuildRequires: evolution-data-server-devel BuildRequires: expat-devel +BuildRequires: firebird-devel +BuildRequires: firebird-libfbembed BuildRequires: fontpackages-devel BuildRequires: freetype-devel %if 0%{?rhel} && 0%{?rhel} < 7 @@ -145,7 +153,14 @@ BuildRequires: libXinerama-devel BuildRequires: libXt-devel %if 0%{?fedora} || 0%{?rhel} >= 7 BuildRequires: libcdr-devel +%endif +%if 0%{?fedora} BuildRequires: libcmis-devel >= 0.3.0 +BuildRequires: libe-book-devel +BuildRequires: libetonyek-devel +BuildRequires: libfreehand-devel +BuildRequires: libmwaw-devel >= 0.2.0 +BuildRequires: mdds-devel >= 0.8.1 %endif BuildRequires: libcurl-devel %if 0%{?fedora} || 0%{?rhel} >= 7 @@ -157,7 +172,6 @@ BuildRequires: libidn-devel BuildRequires: libjpeg-turbo-devel BuildRequires: liblangtag-devel >= 0.4.0 BuildRequires: libmspub-devel -BuildRequires: libmwaw-devel >= 0.2.0 BuildRequires: libodfgen-devel BuildRequires: liborcus-devel >= 0.5.0 BuildRequires: libvisio-devel @@ -170,9 +184,6 @@ BuildRequires: libjpeg-devel BuildRequires: libxml2-devel BuildRequires: libxslt-devel BuildRequires: lpsolve-devel -%if 0%{?fedora} || 0%{?rhel} >= 7 -BuildRequires: mdds-devel >= 0.8.1 -%endif BuildRequires: mesa-libGLU-devel %if 0%{?fedora} || 0%{?rhel} >= 7 BuildRequires: mythes-devel @@ -206,11 +217,9 @@ BuildRequires: ant-apache-regexp %if 0%{?rhel} && 0%{?rhel} < 7 BuildRequires: jakarta-commons-codec BuildRequires: jakarta-commons-lang -BuildRequires: apache-tomcat-apis %else BuildRequires: apache-commons-codec BuildRequires: apache-commons-lang -BuildRequires: tomcat-servlet-3.0-api %endif BuildRequires: bsh %if 0%{?rhel} && 0%{?rhel} < 7 @@ -249,29 +258,6 @@ Patch9: libreoffice-rhel6langs.patch Patch10: libreoffice-rhel6limits.patch Patch11: libreoffice-rhel6glib.patch %endif -Patch12: 0001-do-not-build-LibreOffice_Test.patch -Patch13: 0001-Resolves-rhbz-968892-force-render-full-grapheme-with.patch -Patch14: 0001-Related-rhbz-968892-discard-impossible-languages-for.patch -Patch15: 0002-Related-rhbz-968892-discard-impossible-languages-for.patch -Patch16: 0001-Resolves-fdo-48835-application-menu-for-LibreOffice.patch -Patch17: 0001-Make-charmap.cxx-compile-with-icu-4.4.patch -Patch18: 0001-select-sheet-menu-as-a-right-click-popup-to-the-prev.patch -Patch19: 0001-Resolves-rhbz-1013480-crash-in-EditLineList-operator.patch -Patch20: 0001-Resolves-rhbz-1015281-crash-on-clicking-custom-anima.patch -Patch21: 0001-Resolves-rhbz-996162-apparent-NULL-bullet-font.patch -Patch22: 0001-fdo-70201-sw-eliminate-no-extent-RSID-only-AUTOFMT-h.patch -Patch23: 0001-WaE-Wstrict-overflow-assuming-signed-overflow-does-n.patch -Patch24: 0001-Related-rhbz-1020712-wrong-default-font-shown-in-edi.patch -Patch25: 0001-Related-rhbz-919070-display-1-means-span-all-display.patch -Patch26: 0001-fdo-67725-unoidl-AggregatingCursor-must-wrap-modules.patch -Patch27: 0001-Resolves-rhbz-1021915-force-menubar-menus-to-be-up-d.patch -Patch28: 0001-fdo-70968-Incorrect-rendering-of-Devanagari-short-i-.patch -Patch29: 0001-resolved-fdo-56209-reviving-FilterFormulaParser.patch -Patch30: 0001-update-libmwaw-to-0.2.0.patch -Patch31: 0001-rhbz-1031989-Accept-pt-in-addition-to-deprecated-pt.patch -Patch32: 0001-Related-rhbz-1014990-valgrind-reports-uninitialized-.patch -Patch33: 0001-add-config.-for-formats-newly-supported-by-libmwaw.patch -Patch34: 0001-enable-more-formats-supported-by-libmwaw.patch %define instdir %{_libdir} %define baseinstdir %{instdir}/libreoffice @@ -433,21 +419,6 @@ Provides: openoffice.org-ogltrans%{?_isa} = 1:3.3.0 OpenGL Transitions enable 3D slide transitions to be used in LibreOffice. Requires good quality 3D support for your graphics card for best experience. -%package presentation-minimizer -Summary: Shrink LibreOffice presentations -Group: Applications/Productivity -Requires: %{name}-ure = %{epoch}:%{version}-%{release} -Requires: %{name}-core = %{epoch}:%{version}-%{release} -Requires: %{name}-impress = %{epoch}:%{version}-%{release} -%if 0%{?rhel} && 0%{?rhel} < 7 -Provides: openoffice.org-presentation-minimizer%{?_isa} = 1:3.3.0 -%endif - -%description presentation-minimizer -The Presentation Minimizer is used to reduce the file size of the current -presentation. Images will be compressed, and data that is no longer needed will -be removed. - %package pdfimport Summary: PDF Importer for LibreOffice Draw Group: Applications/Productivity @@ -534,11 +505,14 @@ Summary: LibreOffice Presentation Application Group: Applications/Productivity Requires: %{name}-core = %{epoch}:%{version}-%{release} Requires: %{name}-ure = %{epoch}:%{version}-%{release} +Obsoletes: %{name}-presentation-minimizer < 2:4.2.0.0-1.alpha1 Obsoletes: %{name}-presenter-screen < 2:4.0.0.0-1.beta1 +Provides: %{name}-presentation-minimizer%{?_isa} = %{epoch}:%{version}-%{release} Provides: %{name}-presenter-screen%{?_isa} = %{epoch}:%{version}-%{release} %if 0%{?rhel} && 0%{?rhel} < 7 Provides: openoffice.org-impress-core%{?_isa} = 1:3.3.0 Provides: openoffice.org-impress%{?_isa} = 1:3.3.0, broffice.org-impress%{?_isa} = 1:3.3.0 +Provides: openoffice.org-presentation-minimizer%{?_isa} = 1:3.3.0 Provides: openoffice.org-presenter-screen%{?_isa} = 1:3.3.0 %endif @@ -835,7 +809,7 @@ BuildArch: noarch \ Rules for auto-correcting common %{langname} typing errors. \ \ %files -n %{pkgname} \ -%doc solver/unxlng*/bin/ure/LICENSE \ +%doc instdir/unxlng*/LICENSE \ %dir %{_datadir}/autocorr \ %{-L:%{_datadir}/autocorr/acor_%{lang}.dat} \ %{!-L:%{_datadir}/autocorr/acor_%{lang}-*.dat} \ @@ -919,7 +893,7 @@ Rules for auto-correcting common %{langname} typing errors. \ %{baseinstdir}/share/wordbook/sl.dic #rhbz#452379 clump serbian translations together -%langpack -l sr -n Serbian -F -H -Y -A -i sh -O -v sr_CS -w sr_CS +%langpack -l sr -n Serbian -F -H -Y -A -i sr-Latn -O -v sr_CS -w sr_CS %langpack -l ss -n Swati -F -H -o ss_ZA %define langpack_lang Southern Sotho %langpack -l st -n %{langpack_lang} -F -H -o st_ZA @@ -977,7 +951,7 @@ Rules for auto-correcting common %{langname} typing errors. \ %autocorr -l sk -n Slovak %autocorr -l sl -n Slovenian #rhbz#452379 clump serbian autocorrections together -%autocorr -l sr -n Serbian -i sh +%autocorr -l sr -n Serbian -i sr-Latn %autocorr -l sv -n Swedish %autocorr -l tr -n Turkish %autocorr -l vi -n Vietnamese @@ -1018,29 +992,6 @@ mv -f redhat.soc extras/source/palettes/standard.soc %patch10 -p1 -b .rhel6limits.patch %patch11 -p1 -b .rhel6glib.patch %endif -%patch12 -p1 -b .do-not-build-LibreOffice_Test.patch -%patch13 -p1 -b .rhbz-968892-force-render-full-grapheme-with.patch -%patch14 -p1 -b .rhbz-968892-discard-impossible-languages-for.patch -%patch15 -p1 -b .rhbz-968892-discard-impossible-languages-for.patch -%patch16 -p1 -b .fdo-48835-application-menu-for-LibreOffice.patch -%patch17 -p1 -b .Make-charmap.cxx-compile-with-icu-4.4.patch -%patch18 -p1 -b .select-sheet-menu-as-a-right-click-popup-to-the-prev.patch -%patch19 -p1 -b .rhbz-1013480-crash-in-EditLineList-operator.patch -%patch20 -p1 -b .rhbz-1015281-crash-on-clicking-custom-anima.patch -%patch21 -p1 -b .rhbz-996162-apparent-NULL-bullet-font.patch -%patch22 -p1 -b .fdo-70201-sw-eliminate-no-extent-RSID-only-AUTOFMT-h.patch -%patch23 -p1 -b .WaE-Wstrict-overflow-assuming-signed-overflow-does-n.patch -%patch24 -p1 -b .rhbz-1020712-wrong-default-font-shown-in-edi.patch -%patch25 -p1 -b .rhbz-919070-display-1-means-span-all-display.patch -%patch26 -p1 -b .fdo-67725-unoidl-AggregatingCursor-must-wrap-modules.patch -%patch27 -p1 -b .rhbz-1021915-force-menubar-menus-to-be-up-d.patch -%patch28 -p1 -b .fdo-70968-Incorrect-rendering-of-Devanagari-short-i-.patch -%patch29 -p1 -b .resolved-fdo-56209-reviving-FilterFormulaParser.patch -%patch30 -p1 -b .update-libmwaw-to-0.2.0.patch -%patch31 -p1 -b .rhbz-1031989-Accept-pt-in-addition-to-deprecated-pt.patch -%patch32 -p1 -b .rhbz-1014990-valgrind-reports-uninitialized-.patch -%patch33 -p1 -b .add-config.-for-formats-newly-supported-by-libmwaw.patch -%patch34 -p1 -b .enable-more-formats-supported-by-libmwaw.patch # TODO: check this # these are horribly incomplete--empty translations and copied english @@ -1082,15 +1033,15 @@ export CXXFLAGS=$ARCH_FLAGS %if 0%{?rhel} %if 0%{?rhel} < 7 -%define distrooptions --disable-graphite --without-system-mythes --without-system-mdds --without-junit --without-system-redland --without-system-libexttextcat --without-system-libcdr --without-system-libwps --without-system-libwpd --without-system-libwpg --without-system-libcmis --without-system-clucene --without-system-libvisio --without-system-lcms2 --without-system-libmspub --without-system-orcus --without-system-liblangtag --without-system-boost --without-system-libodfgen --without-system-libmwaw --without-system-harfbuzz --enable-gstreamer-0-10 --disable-gstreamer --disable-postgresql-sdbc --with-servlet-api-jar=/usr/share/java/apache-tomcat-apis/tomcat-servlet2.5-api.jar --enable-python=system --with-system-hsqldb +%define distrooptions --disable-graphite --without-system-mythes --without-system-mdds --without-junit --without-system-redland --without-system-libexttextcat --without-system-libcdr --without-system-libwps --without-system-libwpd --without-system-libwpg --without-system-libcmis --without-system-clucene --without-system-libvisio --without-system-lcms2 --without-system-libmspub --without-system-orcus --without-system-liblangtag --without-system-boost --without-system-libodfgen --without-system-libmwaw --without-system-harfbuzz --enable-gstreamer-0-10 --disable-gstreamer --disable-postgresql-sdbc --enable-python=system --with-system-hsqldb --without-system-libetonyek --without-system-libfreehand %ifarch s390 s390x %define archoptions --disable-sdremote-bluetooth %endif %else -%define distrooptions --without-system-hsqldb --disable-gstreamer-0-10 --enable-gstreamer --with-system-mythes --enable-python=system --with-servlet-api-jar=/usr/share/java/tomcat-servlet-api.jar +%define distrooptions --without-system-hsqldb --disable-gstreamer-0-10 --enable-gstreamer --with-system-mythes --enable-python=system --without-system-libetonyek --without-system-libfreehand %endif %else -%define distrooptions --without-system-hsqldb --enable-kde4 --disable-gstreamer-0-10 --enable-gstreamer --with-system-mythes --with-servlet-api-jar=/usr/share/java/tomcat-servlet-api.jar %{?_smp_mflags:--with-parallelism=%{_smp_mflags}} +%define distrooptions --without-system-hsqldb --enable-kde4 --disable-gstreamer-0-10 --enable-gstreamer --with-system-mythes %{?_smp_mflags:--with-parallelism=%{_smp_mflags}} %endif %if %{with langpacks} @@ -1115,13 +1066,11 @@ touch autogen.lastrun %configure \ %vendoroption \ %{?with_lang} \ - --disable-ccache \ --disable-fetch-external \ --disable-gnome-vfs \ --enable-dbus \ --enable-evolution2 \ --enable-ext-nlpsolver \ - --enable-ext-presenter-minimizer \ --enable-ext-wiki-publisher \ --enable-lockdown \ --enable-release-build \ @@ -1140,7 +1089,7 @@ touch autogen.lastrun --without-ppds \ --without-system-npapi-headers \ %{distrooptions} \ - %{archoptions} + %{?archoptions} make VERBOSE=true @@ -1377,11 +1326,12 @@ for file in *.desktop; do $file done for app in base calc draw impress math writer; do - echo "TryExec=oo$app" >> $app.desktop + echo "X-TryExec=oo$app" >> $app.desktop done # relocate the .desktop and icon files mkdir -p $RPM_BUILD_ROOT/%{_datadir}/applications for app in base calc draw impress math startcenter writer xsltfilter; do + sed -i -e 's/\${UNIXBASISROOTNAME}/%{name}/' $app.desktop desktop-file-validate $app.desktop cp -p $app.desktop $RPM_BUILD_ROOT/%{_datadir}/applications/libreoffice-$app.desktop done @@ -1456,7 +1406,6 @@ make cmd cmd="install-gdb-printers -a %{_datadir}/gdb/auto-load%{baseinstdir} -c %{baseinstdir}/program/libbasprovlo.so %{baseinstdir}/program/libcairocanvaslo.so %{baseinstdir}/program/libcanvasfactorylo.so -%{baseinstdir}/program/cde-open-url %dir %{baseinstdir}/program/classes %{baseinstdir}/program/classes/commonwizards.jar %{baseinstdir}/program/classes/form.jar @@ -1476,7 +1425,6 @@ make cmd cmd="install-gdb-printers -a %{_datadir}/gdb/auto-load%{baseinstdir} -c %{baseinstdir}/program/libexpwraplo.so %{baseinstdir}/program/libfastsaxlo.so %{baseinstdir}/program/flat_logo.svg -%{baseinstdir}/program/libfpickerlo.so %{baseinstdir}/program/libfps_officelo.so %{baseinstdir}/program/gdbtrace %{baseinstdir}/program/gengal @@ -1525,6 +1473,7 @@ make cmd cmd="install-gdb-printers -a %{_datadir}/gdb/auto-load%{baseinstdir} -c %{baseinstdir}/program/liberalo.so %{baseinstdir}/program/libetilo.so %{baseinstdir}/program/libexplo.so +%{baseinstdir}/program/libfirebird_sdbclo.so %{baseinstdir}/program/libicdlo.so %{baseinstdir}/program/libicglo.so %{baseinstdir}/program/libidxlo.so @@ -1555,12 +1504,13 @@ make cmd cmd="install-gdb-printers -a %{_datadir}/gdb/auto-load%{baseinstdir} -c %{baseinstdir}/program/liblocaledata_others.so %{baseinstdir}/program/libmcnttype.so %{baseinstdir}/program/libmorklo.so -%{baseinstdir}/program/libmozbootstrap.so +%{baseinstdir}/program/libmozbootstraplo.so %{baseinstdir}/program/libmsfilterlo.so %{baseinstdir}/program/libmtfrendererlo.so %{baseinstdir}/program/libmysqllo.so %{baseinstdir}/program/libodbclo.so %{baseinstdir}/program/libodbcbaselo.so +%{baseinstdir}/program/liboglcanvaslo.so %{baseinstdir}/program/liboffacclo.so %{baseinstdir}/program/libooxlo.so %{baseinstdir}/program/libpcrlo.so @@ -1663,7 +1613,6 @@ make cmd cmd="install-gdb-printers -a %{_datadir}/gdb/auto-load%{baseinstdir} -c %{baseinstdir}/program/resource/svxen-US.res %{baseinstdir}/program/resource/swen-US.res %{baseinstdir}/program/resource/textconversiondlgsen-US.res -%{baseinstdir}/program/resource/tken-US.res %{baseinstdir}/program/resource/tplen-US.res %{baseinstdir}/program/resource/uuien-US.res %{baseinstdir}/program/resource/upden-US.res @@ -1680,7 +1629,6 @@ make cmd cmd="install-gdb-printers -a %{_datadir}/gdb/auto-load%{baseinstdir} -c %{baseinstdir}/program/spadmin.bin %{baseinstdir}/program/libstringresourcelo.so %{baseinstdir}/program/libsysshlo.so -%{baseinstdir}/program/tde-open-url %{baseinstdir}/program/libucpcmis1lo.so %{baseinstdir}/program/libucpexpand1lo.so %{baseinstdir}/program/libucpextlo.so @@ -1704,6 +1652,7 @@ make cmd cmd="install-gdb-printers -a %{_datadir}/gdb/auto-load%{baseinstdir} -c %{baseinstdir}/share/config/images_crystal.zip %{baseinstdir}/share/config/images_hicontrast.zip %{baseinstdir}/share/config/images_oxygen.zip +%{baseinstdir}/share/config/images_sifr.zip %{baseinstdir}/share/config/images_tango.zip %{baseinstdir}/share/config/psetup.xpm %{baseinstdir}/share/config/psetupl.xpm @@ -1778,7 +1727,6 @@ make cmd cmd="install-gdb-printers -a %{_datadir}/gdb/auto-load%{baseinstdir} -c %{baseinstdir}/program/libbasegfxlo.so # TODO: shouldn't it have lo suffix? %{baseinstdir}/program/libcomphelper.so -%{baseinstdir}/program/libfileacc.so %{baseinstdir}/program/libfwelo.so %{baseinstdir}/program/libfwilo.so %{baseinstdir}/program/libfwklo.so @@ -1932,10 +1880,6 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %{baseinstdir}/share/config/soffice.cfg/simpress/transitions-ogl.xml %{baseinstdir}/share/registry/ogltrans.xcd -%files presentation-minimizer -%docdir %{baseinstdir}/share/extensions/presentation-minimizer/help -%{baseinstdir}/share/extensions/presentation-minimizer - %files pdfimport %{baseinstdir}/program/libpdfimportlo.so %{baseinstdir}/program/xpdfimport @@ -1944,7 +1888,7 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %{baseinstdir}/share/xpdfimport/xpdfimport_err.pdf %_font_pkg -n %{fontname} opens___.ttf -%doc solver/unxlng*/bin/ure/LICENSE +%doc instdir/unxlng*/LICENSE %files calc %{baseinstdir}/help/en-US/scalc.* @@ -1957,6 +1901,7 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %{baseinstdir}/program/libsclo.so %{baseinstdir}/program/libscdlo.so %{baseinstdir}/program/libscfiltlo.so +%{baseinstdir}/program/libscopencllo.so %{baseinstdir}/program/libscuilo.so %{baseinstdir}/program/libsolverlo.so %{baseinstdir}/program/resource/analysisen-US.res @@ -2025,9 +1970,13 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %{baseinstdir}/help/en-US/simpress.* %{baseinstdir}/program/libanimcorelo.so %{baseinstdir}/program/libplacewarelo.so +%{baseinstdir}/program/libPresentationMinimizerlo.so %{baseinstdir}/program/libPresenterScreenlo.so +%{baseinstdir}/program/libwpftimpresslo.so %dir %{baseinstdir}/share/config/soffice.cfg/simpress %{baseinstdir}/share/config/soffice.cfg/simpress/effects.xml +%{baseinstdir}/share/config/soffice.cfg/simpress/layoutlist.xml +%{baseinstdir}/share/config/soffice.cfg/simpress/objectlist.xml %{baseinstdir}/share/config/soffice.cfg/simpress/transitions.xml %{baseinstdir}/share/registry/impress.xcd %{baseinstdir}/program/pagein-impress @@ -2083,7 +2032,7 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %endif %files ure -%doc solver/unxlng*/bin/ure/LICENSE +%doc instdir/unxlng*/LICENSE %{ureinstdir} %files sdk @@ -2107,6 +2056,7 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %{baseinstdir}/program/pythonloader.unorc %{baseinstdir}/program/pythonscript.py* %{baseinstdir}/program/pyuno.so +%{baseinstdir}/program/services/pyuno.rdb %{baseinstdir}/program/services/scriptproviderforpython.rdb %{baseinstdir}/program/wizards %{baseinstdir}/share/Scripts/python @@ -2130,6 +2080,9 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %endif %changelog +* Thu Nov 21 2013 David Tardon - 1:4.2.0.0-1.beta1 +- switch to 4.2.0 + * Wed Nov 20 2013 Stephan Bergmann - 1:4.1.3.2-5 - Resolves: rhbz#1031989 Accept --pt in addition to deprecated -pt - Related: rhbz#1014990 valgrind reports uninitialized variables diff --git a/sources b/sources index 3e58ac9..9ab3d3e 100644 --- a/sources +++ b/sources @@ -6,6 +6,6 @@ a7983f859eafb2677d7ff386a023bc40 a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2. 1f24ab1d39f4a51faf22244c94a6203f 1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz 0168229624cfac409e766913506961a8 0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz 12fb8b5b0d5132726e57b9b9fc7e22c4 libreoffice-multiliblauncher.sh -7c5248b9141df6c4844c81515a41942f libreoffice-4.1.3.2.tar.xz -c5a692983c429a142b1c109fd28425fa libreoffice-help-4.1.3.2.tar.xz -f5131da6395034246eb26aa94c7de8b2 libreoffice-translations-4.1.3.2.tar.xz +dbb8b7f5f64a407b6aef66f98b8163ff libreoffice-4.2.0.0.beta1.tar.xz +48481fd38699c598b19d637ead29d34a libreoffice-help-4.2.0.0.beta1.tar.xz +ec4982d81fac7c068095c7877273ca34 libreoffice-translations-4.2.0.0.beta1.tar.xz