[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - editeng/source
editeng/source/editeng/editview.cxx | 11 +++ 1 file changed, 11 insertions(+) New commits: commit 612903384bbe68dfb3be1b36111e28b869aa0be8 Author: Caolán McNamara Date: Fri Feb 24 13:57:53 2017 + Resolves: tdf#106123 store and restore the PaM around the menu Execute because the loss of focus in the current editeng causes writer annotations to save their contents, making the pContent of the current EditMaps invalid (cherry picked from commit 71a84b69ae30458a941f38869aa994118051a063) Change-Id: Ic01379291fa66dd58246d33287b18801f5da49c0 Reviewed-on: https://gerrit.libreoffice.org/34614 Tested-by: Jenkins Reviewed-by: Michael Stahl diff --git a/editeng/source/editeng/editview.cxx b/editeng/source/editeng/editview.cxx index 3c0852e..609f1d0 100644 --- a/editeng/source/editeng/editview.cxx +++ b/editeng/source/editeng/editview.cxx @@ -921,7 +921,18 @@ void EditView::ExecuteSpellPopup( const Point& rPosPixel, LinkGetWindow()->OutputToScreenPixel( aScreenPos ); aTempRect = pImpEditView->GetWindow()->LogicToPixel( Rectangle(aScreenPos, aTempRect.GetSize() )); +//tdf#106123 store and restore the EditPaM around the menu Execute +//because the loss of focus in the current editeng causes writer +//annotations to save their contents, making the pContent of the +//current EditPams invalid +EPaM aP = pImpEditView->pEditEngine->pImpEditEngine->CreateEPaM(aPaM); +EPaM aP2 = pImpEditView->pEditEngine->pImpEditEngine->CreateEPaM(aPaM2); + sal_uInt16 nId = aPopupMenu.Execute( pImpEditView->GetWindow(), aTempRect, PopupMenuFlags::NoMouseUpClose ); + +aPaM2 = pImpEditView->pEditEngine->pImpEditEngine->CreateEditPaM(aP2); +aPaM = pImpEditView->pEditEngine->pImpEditEngine->CreateEditPaM(aP); + if ( nId == MN_IGNORE ) { OUString aWord = pImpEditView->SpellIgnoreWord(); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - editeng/source
editeng/source/editeng/eerdll.cxx | 12 ++-- editeng/source/editeng/eerdll2.hxx |4 editeng/source/editeng/impedit.hxx |2 +- editeng/source/editeng/impedit2.cxx | 32 ++-- 4 files changed, 25 insertions(+), 25 deletions(-) New commits: commit fc1d2236eb9ae89fb8f2ece013bc9396bafb1db1 Author: Kohei Yoshida Date: Mon Jan 23 22:01:37 2017 -0500 tdf#103927: Share single standard VirtualDevice instance. To avoid creating excessive amounts of VirtualDevice instances. Also, since we now have VclPtr, we shouldn't need this bOwnerOfRefDev flag. This fixes tdf#102688 as well as other GDI-Limit related issues. See tdf#105469 for other bugs this may fix. (cherry picked from commit b41186a2fc49e440890b8c86e5367352ffaf9cd6) (cherry picked from commit fab2f546d1fb3ceaf5ee5d4d728f1728a8f1e7f3) (cherry picked from commit bac2baa785ffc75160de2d15da60901152da33de) Conflicts: editeng/source/editeng/eerdll2.hxx editeng/source/editeng/impedit2.cxx Change-Id: Ieda242786c6376c7ac249a9f6d469b670f1ac177 Reviewed-on: https://gerrit.libreoffice.org/33641 Tested-by: Jenkins Reviewed-by: Jean-Sébastien B. Reviewed-by: Miklos Vajna diff --git a/editeng/source/editeng/eerdll.cxx b/editeng/source/editeng/eerdll.cxx index b444d6c..364794c 100644 --- a/editeng/source/editeng/eerdll.cxx +++ b/editeng/source/editeng/eerdll.cxx @@ -70,6 +70,7 @@ #include #include #include +#include using namespace ::com::sun::star; @@ -83,9 +84,11 @@ EditDLL& EditDLL::Get() return theEditDLL::get(); } -GlobalEditData::GlobalEditData() +GlobalEditData::GlobalEditData() : +ppDefItems(nullptr), +mpVirDev(VclPtr::Create()) { -ppDefItems = nullptr; +mpVirDev->SetMapMode(MAP_TWIP); } GlobalEditData::~GlobalEditData() @@ -193,6 +196,11 @@ uno::Reference< linguistic2::XLanguageGuessing > GlobalEditData::GetLanguageGues return xLanguageGuesser; } +VclPtr GlobalEditData::GetStdVirtualDevice() +{ +return mpVirDev; +} + EditResId::EditResId(sal_uInt16 nId) : ResId(nId, *EditDLL::GetResMgr()) { diff --git a/editeng/source/editeng/eerdll2.hxx b/editeng/source/editeng/eerdll2.hxx index 62b2b2a..f50c559 100644 --- a/editeng/source/editeng/eerdll2.hxx +++ b/editeng/source/editeng/eerdll2.hxx @@ -25,6 +25,7 @@ #include class SfxPoolItem; +class VirtualDevice; class GlobalEditData { @@ -33,6 +34,7 @@ private: SfxPoolItem** ppDefItems; rtl::Reference xForbiddenCharsTable; +VclPtr mpVirDev; public: GlobalEditData(); @@ -43,6 +45,8 @@ public: rtl::Reference GetForbiddenCharsTable(); voidSetForbiddenCharsTable( rtl::Reference xForbiddenChars ) { xForbiddenCharsTable = xForbiddenChars; } css::uno::Reference< css::linguistic2::XLanguageGuessing > GetLanguageGuesser(); + +VclPtr GetStdVirtualDevice(); }; #endif // INCLUDED_EDITENG_SOURCE_EDITENG_EERDLL2_HXX diff --git a/editeng/source/editeng/impedit.hxx b/editeng/source/editeng/impedit.hxx index 6cea107..9b294ea 100644 --- a/editeng/source/editeng/impedit.hxx +++ b/editeng/source/editeng/impedit.hxx @@ -417,6 +417,7 @@ private: VclPtr< VirtualDevice> pVirtDev; VclPtr< OutputDevice > pRefDev; +VclPtr mpOwnDev; svtools::ColorConfig* pColorConfig; mutable SvtCTLOptions* pCTLOptions; @@ -502,7 +503,6 @@ private: boolbIsInUndo:1; boolbUpdate:1; boolbUndoEnabled:1; -boolbOwnerOfRefDev:1; boolbDowning:1; boolbUseAutoColor:1; boolbForceAutoColor:1; diff --git a/editeng/source/editeng/impedit2.cxx b/editeng/source/editeng/impedit2.cxx index 6ac1fef..f3412e9 100644 --- a/editeng/source/editeng/impedit2.cxx +++ b/editeng/source/editeng/impedit2.cxx @@ -95,7 +95,6 @@ ImpEditEngine::ImpEditEngine( EditEngine* pEE, SfxItemPool* pItemPool ) : bIsInUndo(false), bUpdate(true), bUndoEnabled(true), -bOwnerOfRefDev(false), bDowning(false), bUseAutoColor(true), bForceAutoColor(false), @@ -174,6 +173,7 @@ ImpEditEngine::~ImpEditEngine() bDowning = true; SetUpdateMode( false ); +mpOwnDev.disposeAndClear(); pVirtDev.disposeAndClear(); delete pEmptyItemSet; delete pUndoManager; @@ -181,26 +181,15 @@ ImpEditEngine::~ImpEditEngine() delete mpIMEInfos; delete pColorConfig; delete pCTLOptions; -if ( bOwnerOfRefDev ) -pRefDev.disposeAndClear(); delete pSpellInfo; } void ImpEditEngine::SetRefDevice( OutputDevice* pRef ) { -if ( bOwnerOfRefDev ) -pRefDev.disposeAndClear(); - -if ( !pRef ) -{ -pRefDev = VclPtr::Create(); -pRefDev->SetMapMode( MAP_TWIP ); -bOwnerOfRefDev = true; -} else -{ +if (pRef) pRefDev = pRef; -bOwnerOfRefDev
[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - editeng/source
editeng/source/misc/svxacorr.cxx |6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) New commits: commit 42849da8f266972ef370104c332d74ff7b15fc71 Author: Yossi Zahn Date: Mon Nov 28 13:01:40 2016 + tdf#96354 correct broken autocorrect INitial CApitals Change-Id: If65ec7814c3aed5e4c17294ae57c34550373469d Reviewed-on: https://gerrit.libreoffice.org/31317 Reviewed-by: jan iversen Tested-by: jan iversen (cherry picked from commit c6db0e064959ec154db9471a8e1f1e2716bb3523) Reviewed-on: https://gerrit.libreoffice.org/33266 Tested-by: Jenkins Reviewed-by: Miklos Vajna diff --git a/editeng/source/misc/svxacorr.cxx b/editeng/source/misc/svxacorr.cxx index b363614..f8f180e 100644 --- a/editeng/source/misc/svxacorr.cxx +++ b/editeng/source/misc/svxacorr.cxx @@ -104,13 +104,13 @@ static inline bool IsWordDelim( const sal_Unicode c ) static inline bool IsLowerLetter( sal_Int32 nCharType ) { return CharClass::isLetterType( nCharType ) && -0 == ( css::i18n::KCharacterType::UPPER & nCharType); + ( css::i18n::KCharacterType::LOWER & nCharType); } static inline bool IsUpperLetter( sal_Int32 nCharType ) { return CharClass::isLetterType( nCharType ) && -0 == ( css::i18n::KCharacterType::LOWER & nCharType); +( css::i18n::KCharacterType::UPPER & nCharType); } bool lcl_IsUnsupportedUnicodeChar( CharClass& rCC, const OUString& rTxt, @@ -415,7 +415,7 @@ bool SvxAutoCorrect::FnCapitalStartWord( SvxAutoCorrDoc& rDoc, const OUString& r if( xSpeller->hasLanguage(eLang) ) { Sequence< css::beans::PropertyValue > aEmptySeq; -if (!xSpeller->spell(sWord, eLang, aEmptySeq).is()) +if (xSpeller->isValid(sWord, eLang, aEmptySeq)) { return false; } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - editeng/source include/editeng svx/source
editeng/source/accessibility/AccessibleContextBase.cxx | 15 --- include/editeng/AccessibleContextBase.hxx |6 -- svx/source/accessibility/AccessibleShape.cxx |6 +- 3 files changed, 5 insertions(+), 22 deletions(-) New commits: commit 0152535649bf6827767af47e115580b2cc1906f6 Author: Michael Stahl Date: Thu Dec 15 22:46:08 2016 +0100 tdf#104488 editeng,svx: throw less Accessible exceptions For some of these functions it doesn't make sense to throw DisposedException as they can return a sensible default value. Particularly AccessibleShape::getAccessibleChildCount() was throwing an exception that was never caught. (cherry picked from commit 5a3b272f106378cbf78aba0fde1db3642275) loplugin:unnecessaryoverride (cherry picked from commit 10bf49c18d56f198e63514953a1c6e2ea17fcc9c) Reviewed-on: https://gerrit.libreoffice.org/32187 Reviewed-by: Michael Stahl Tested-by: Michael Stahl (cherry picked from commit 0dd9e51abc5705b7ae253d3f9b284136cf1597d6) Change-Id: I000149cf9bb0fd13f69650ad8224a8daf26f7bee Reviewed-on: https://gerrit.libreoffice.org/32201 Tested-by: Jenkins Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara diff --git a/editeng/source/accessibility/AccessibleContextBase.cxx b/editeng/source/accessibility/AccessibleContextBase.cxx index c2b0d00..2c5bc59 100644 --- a/editeng/source/accessibility/AccessibleContextBase.cxx +++ b/editeng/source/accessibility/AccessibleContextBase.cxx @@ -175,7 +175,6 @@ uno::Reference< XAccessibleContext> SAL_CALL AccessibleContextBase::getAccessibleContext() throw (uno::RuntimeException, std::exception) { -ThrowIfDisposed (); return this; } @@ -188,7 +187,6 @@ sal_Int32 SAL_CALL AccessibleContextBase::getAccessibleChildCount() throw (uno::RuntimeException, std::exception) { -ThrowIfDisposed (); return 0; } @@ -420,7 +418,6 @@ void SAL_CALL AccessibleContextBase::removeAccessibleEventListener ( OUString SAL_CALL AccessibleContextBase::getImplementationName() throw (css::uno::RuntimeException, std::exception) { -ThrowIfDisposed (); return OUString("AccessibleContextBase"); } @@ -434,7 +431,6 @@ uno::Sequence< OUString > SAL_CALL AccessibleContextBase::getSupportedServiceNames() throw (css::uno::RuntimeException, std::exception) { -ThrowIfDisposed (); static const OUString sServiceNames[2] = { OUString("com.sun.star.accessibility.Accessible"), OUString("com.sun.star.accessibility.AccessibleContext") @@ -445,17 +441,6 @@ uno::Sequence< OUString > SAL_CALL // XTypeProvider -uno::Sequence< css::uno::Type> -AccessibleContextBase::getTypes() -throw (css::uno::RuntimeException, std::exception) -{ -ThrowIfDisposed (); - -// This class supports no interfaces on its own. Just return those -// supported by the base class. -return WeakComponentImplHelper::getTypes(); -} - uno::Sequence SAL_CALL AccessibleContextBase::getImplementationId() throw (css::uno::RuntimeException, std::exception) diff --git a/include/editeng/AccessibleContextBase.hxx b/include/editeng/AccessibleContextBase.hxx index 7f414eb..4fb4389 100644 --- a/include/editeng/AccessibleContextBase.hxx +++ b/include/editeng/AccessibleContextBase.hxx @@ -266,12 +266,6 @@ public: //= XTypeProvider === -/** Returns a sequence of all supported interfaces. -*/ -virtual css::uno::Sequence< css::uno::Type> SAL_CALL -getTypes() -throw (css::uno::RuntimeException, std::exception) override; - /** Returns a implementation id. */ virtual css::uno::Sequence SAL_CALL diff --git a/svx/source/accessibility/AccessibleShape.cxx b/svx/source/accessibility/AccessibleShape.cxx index 45bcf70..8fc86ee 100644 --- a/svx/source/accessibility/AccessibleShape.cxx +++ b/svx/source/accessibility/AccessibleShape.cxx @@ -326,7 +326,11 @@ sal_Int32 SAL_CALL AccessibleShape::getAccessibleChildCount () throw (css::uno::RuntimeException, std::exception) { -ThrowIfDisposed (); +if (IsDisposed()) +{ +return 0; +} + sal_Int32 nChildCount = 0; // Add the number of shapes that are children of this shape. ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - editeng/source
editeng/source/editeng/impedit.cxx |5 + 1 file changed, 5 insertions(+) New commits: commit b35bfc7c10a5e06d68340db22486f6682247d8df Author: Eike Rathke Date: Wed Nov 30 14:47:58 2016 +0100 Resolves: tdf#104152 suppress notifications from EditEngine during Paste Broadcast once at the end instead to notify a11y. (cherry picked from commit 7c20d0174c59d46b11fc5029fe3fc0c00f5dc6d0) Conflicts: editeng/source/editeng/impedit.cxx Change-Id: I12383b6efbbb2b149f0d73c67d8576fcc050b253 Reviewed-on: https://gerrit.libreoffice.org/31425 Tested-by: Jenkins Reviewed-by: Kohei Yoshida Reviewed-by: Eike Rathke diff --git a/editeng/source/editeng/impedit.cxx b/editeng/source/editeng/impedit.cxx index 59f20a4..13d98c0 100644 --- a/editeng/source/editeng/impedit.cxx +++ b/editeng/source/editeng/impedit.cxx @@ -1440,9 +1440,14 @@ void ImpEditView::Paste( css::uno::Reference< css::datatransfer::clipboard::XCli } else { +// Prevent notifications of paragraph inserts et al that would trigger +// a11y to format content in a half-ready state when obtaining +// paragraphs. Collect and broadcast when done instead. +pEditEngine->pImpEditEngine->EnterBlockNotifications(); aSel = pEditEngine->InsertText( xDataObj, OUString(), aSel.Min(), bUseSpecial && pEditEngine->GetInternalEditStatus().AllowPasteSpecial()); +pEditEngine->pImpEditEngine->LeaveBlockNotifications(); } aPasteOrDropInfos.nEndPara = pEditEngine->GetEditDoc().GetPos( aSel.Max().GetNode() ); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - editeng/source include/editeng
editeng/source/editeng/editeng.cxx |4 ++-- editeng/source/editeng/editundo.cxx |2 +- editeng/source/editeng/impedit.hxx |2 +- editeng/source/editeng/impedit3.cxx |6 +- include/editeng/editeng.hxx |2 +- 5 files changed, 10 insertions(+), 6 deletions(-) New commits: commit 4e29dfdd4f95101a1ceff36f735bb0d2eef4d919 Author: Noel Grandin Date: Mon Oct 24 14:12:12 2016 +0200 tdf#103334 - EDITING: Undo on bullet point style I have checked the normal model and the editing model after UNDO, and all seems to be well, this is purely a rendering/lack-of-invalidation issue. The extra invalidation I add here is restricted to the UNDO case to prevent tripping up a LOK unit test (SdTiledRenderingTest::testCursorViews). I confess to not having followed the invalidation logic all the way to see why exactly it makes the bug go away. Reviewed-on: https://gerrit.libreoffice.org/30225 Reviewed-by: Noel Grandin Tested-by: Noel Grandin (cherry picked from commit ee33745ced5ae12f9ae7735fac16a7298ccae474) Change-Id: I34f7d84526462665b1ec09aba966c98cd4e8795f Reviewed-on: https://gerrit.libreoffice.org/30425 Tested-by: Jenkins Reviewed-by: Andras Timar diff --git a/editeng/source/editeng/editeng.cxx b/editeng/source/editeng/editeng.cxx index c3bb938..1715212 100644 --- a/editeng/source/editeng/editeng.cxx +++ b/editeng/source/editeng/editeng.cxx @@ -740,9 +740,9 @@ void EditEngine::SetUndoMode(bool b) pImpEditEngine->SetUndoMode(b); } -void EditEngine::FormatAndUpdate(EditView* pCurView) +void EditEngine::FormatAndUpdate(EditView* pCurView, bool bCalledFromUndo) { -pImpEditEngine->FormatAndUpdate(pCurView); +pImpEditEngine->FormatAndUpdate(pCurView, bCalledFromUndo); } void EditEngine::Undo(EditView* pView) diff --git a/editeng/source/editeng/editundo.cxx b/editeng/source/editeng/editundo.cxx index faea53b..f900867 100644 --- a/editeng/source/editeng/editundo.cxx +++ b/editeng/source/editeng/editundo.cxx @@ -77,7 +77,7 @@ bool EditUndoManager::Undo() aNewSel.Min() = aNewSel.Max(); mpEditEngine->GetActiveView()->GetImpEditView()->SetEditSelection( aNewSel ); -mpEditEngine->FormatAndUpdate( mpEditEngine->GetActiveView() ); +mpEditEngine->FormatAndUpdate( mpEditEngine->GetActiveView(), true ); return bDone; } diff --git a/editeng/source/editeng/impedit.hxx b/editeng/source/editeng/impedit.hxx index 15a4339..6cea107 100644 --- a/editeng/source/editeng/impedit.hxx +++ b/editeng/source/editeng/impedit.hxx @@ -853,7 +853,7 @@ public: voidSetNotifyHdl( const Link& rLink ) { aNotifyHdl = rLink; } const Link& GetNotifyHdl() const{ return aNotifyHdl; } -voidFormatAndUpdate( EditView* pCurView = nullptr ); +voidFormatAndUpdate( EditView* pCurView = nullptr, bool bCalledFromUndo = false ); inline void IdleFormatAndUpdate( EditView* pCurView = nullptr ); svtools::ColorConfig& GetColorConfig(); diff --git a/editeng/source/editeng/impedit3.cxx b/editeng/source/editeng/impedit3.cxx index 4d8f674..1e748c4 100644 --- a/editeng/source/editeng/impedit3.cxx +++ b/editeng/source/editeng/impedit3.cxx @@ -4026,7 +4026,7 @@ EditSelection* ImpEditEngine::SelectParagraph( sal_Int32 nPara ) return pSel; } -void ImpEditEngine::FormatAndUpdate( EditView* pCurView ) +void ImpEditEngine::FormatAndUpdate( EditView* pCurView, bool bCalledFromUndo ) { if ( bDowning ) return ; @@ -4035,6 +4035,10 @@ void ImpEditEngine::FormatAndUpdate( EditView* pCurView ) IdleFormatAndUpdate( pCurView ); else { +if (bCalledFromUndo) +// in order to make bullet points that have had their styles changed, redraw themselves +for ( sal_Int32 nPortion = 0; nPortion < GetParaPortions().Count(); nPortion++ ) +GetParaPortions()[nPortion]->MarkInvalid( 0, 0 ); FormatDoc(); UpdateViews( pCurView ); } diff --git a/include/editeng/editeng.hxx b/include/editeng/editeng.hxx index e5b5e94..382d3d4 100644 --- a/include/editeng/editeng.hxx +++ b/include/editeng/editeng.hxx @@ -599,7 +599,7 @@ public: const ViewsType& GetEditViews() const; void SetUndoMode(bool b); -void FormatAndUpdate(EditView* pCurView = nullptr); +void FormatAndUpdate(EditView* pCurView = nullptr, bool bCalledFromUndo = false); void Undo(EditView* pView); void Redo(EditView* pView); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - editeng/source include/editeng sw/source
editeng/source/items/frmitems.cxx | 12 ++-- include/editeng/boxitem.hxx |5 +++-- sw/source/core/doc/notxtfrm.cxx | 16 ++-- 3 files changed, 27 insertions(+), 6 deletions(-) New commits: commit ab64ae2a828f4acd6d118abc14193c543d04b940 Author: Justin Luth Date: Sat Nov 5 11:11:29 2016 +0300 tdf#90070 don't clip flys with borders regression from commit e598ab04476a32a08f18e8f0662fafa5f78f1a4a very aggressively forced a new frame size via compat setting CLIPPED_PICTURES on any fly - not just images. This only affects MS-format documents, EXCEPT that it is a document property, so if the file every spent any part of it's life in MS-format, it will always retain that compatibility setting. That explains why the problem was intermittent for me - and was hard to reproduce in a clean document, even though I'd seen it in .ODTs. bIgnoreLine (ignore the fact that there is no visible line) was a confusing word choice for "if there is no line, then return a spacing size of zero". bEvenIfNoLine=false is better. Change-Id: I50a3bdef3a67339ae517ee6319920651bc56f9be Reviewed-on: https://gerrit.libreoffice.org/30585 Tested-by: Jenkins Reviewed-by: Justin Luth (cherry picked from commit d034f273cb24ebe4fde20ad9089ac11cccf316d0) Reviewed-on: https://gerrit.libreoffice.org/30595 diff --git a/editeng/source/items/frmitems.cxx b/editeng/source/items/frmitems.cxx index 00a41e2..5c9c0ea 100644 --- a/editeng/source/items/frmitems.cxx +++ b/editeng/source/items/frmitems.cxx @@ -2390,7 +2390,7 @@ void SvxBoxItem::SetDistance( sal_uInt16 nNew, SvxBoxItemLine nLine ) } -sal_uInt16 SvxBoxItem::CalcLineSpace( SvxBoxItemLine nLine, bool bIgnoreLine ) const +sal_uInt16 SvxBoxItem::CalcLineSpace( SvxBoxItemLine nLine, bool bEvenIfNoLine ) const { SvxBorderLine* pTmp = nullptr; sal_uInt16 nDist = 0; @@ -2420,11 +2420,19 @@ sal_uInt16 SvxBoxItem::CalcLineSpace( SvxBoxItemLine nLine, bool bIgnoreLine ) c { nDist = nDist + pTmp->GetScaledWidth(); } -else if( !bIgnoreLine ) +else if( !bEvenIfNoLine ) nDist = 0; return nDist; } +bool SvxBoxItem::HasBorder( bool bTreatPaddingAsBorder ) const +{ +return CalcLineSpace( SvxBoxItemLine::BOTTOM, bTreatPaddingAsBorder ) +|| CalcLineSpace( SvxBoxItemLine::RIGHT, bTreatPaddingAsBorder ) +|| CalcLineSpace( SvxBoxItemLine::TOP, bTreatPaddingAsBorder ) +|| CalcLineSpace( SvxBoxItemLine::LEFT, bTreatPaddingAsBorder ); +} + // class SvxBoxInfoItem -- SvxBoxInfoItem::SvxBoxInfoItem( const sal_uInt16 nId ) : diff --git a/include/editeng/boxitem.hxx b/include/editeng/boxitem.hxx index 58ccb21..2fa7ef0 100644 --- a/include/editeng/boxitem.hxx +++ b/include/editeng/boxitem.hxx @@ -109,8 +109,9 @@ public: void SetRemoveAdjacentCellBorder( bool bSet = true ) { bRemoveAdjCellBorder = bSet; } // Line width plus Space plus inward distance -// bIgnoreLine = TRUE -> Also return distance, when no Line is set -sal_uInt16 CalcLineSpace( SvxBoxItemLine nLine, bool bIgnoreLine = false ) const; +// bEvenIfNoLine = TRUE -> Also return distance, when no Line is set +sal_uInt16 CalcLineSpace( SvxBoxItemLine nLine, bool bEvenIfNoLine = false ) const; +bool HasBorder( bool bTreatPaddingAsBorder = false ) const; static css::table::BorderLine2 SvxLineToLine( const editeng::SvxBorderLine* pLine, bool bConvert ); static bool LineToSvxLine(const css::table::BorderLine& rLine, editeng::SvxBorderLine& rSvxLine, bool bConvert); static bool LineToSvxLine(const css::table::BorderLine2& rLine, editeng::SvxBorderLine& rSvxLine, bool bConvert); diff --git a/sw/source/core/doc/notxtfrm.cxx b/sw/source/core/doc/notxtfrm.cxx index d391bfa..8578e45 100644 --- a/sw/source/core/doc/notxtfrm.cxx +++ b/sw/source/core/doc/notxtfrm.cxx @@ -277,11 +277,23 @@ void SwNoTextFrame::Paint(vcl::RenderContext& rRenderContext, SwRect const& rRec // In case the picture fly frm was clipped, render it with the origin // size instead of scaling it -if ( rNoTNd.getIDocumentSettingAccess()->get( DocumentSettingId::CLIPPED_PICTURES ) ) +if ( pGrfNd && rNoTNd.getIDocumentSettingAccess()->get( DocumentSettingId::CLIPPED_PICTURES ) ) { const SwFlyFreeFrame *pFly = dynamic_cast< const SwFlyFreeFrame* >( FindFlyFrame() ); if( pFly ) -aGrfArea = SwRect( Frame().Pos( ), pFly->GetUnclippedFrame( ).SSize( ) ); +{ +bool bGetUnclippedFrame=true; +const SfxPoolItem* pItem; +if( pFly->GetFormat() && SfxItemState::SET == pFly->GetFormat()->GetItemState(RES_BOX, false, &pItem) ) +{ +const SvxBoxItem& rBox = *static_cast(pItem); +if( rBox.HasBorder( /*bTreatPaddingAsBorder*/true) ) +
[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - editeng/source
editeng/source/misc/svxacorr.cxx | 18 +++--- 1 file changed, 11 insertions(+), 7 deletions(-) New commits: commit 3d83d4eb6bf3ed8f0fc52d2edd327a6a931a7f47 Author: Caolán McNamara Date: Wed Sep 21 20:34:32 2016 +0100 Resolves: tdf#83037 <--> corrected into â â instead of â don't use - as a word separator except for breaking up a compound word for the purposes of tdf#55693, e.g. TEst-TEst autocorrected to Test-Test) Change-Id: Ie52a16af0b5838d1ba0de9c5f9c30dcab05c3bc7 (cherry picked from commit 0bfefc0b396bd61cc5f508bf86afc12cfadaa483) Reviewed-on: https://gerrit.libreoffice.org/29190 Tested-by: Jenkins Reviewed-by: Eike Rathke diff --git a/editeng/source/misc/svxacorr.cxx b/editeng/source/misc/svxacorr.cxx index 1fe52ca..b363614 100644 --- a/editeng/source/misc/svxacorr.cxx +++ b/editeng/source/misc/svxacorr.cxx @@ -228,7 +228,15 @@ bool SvxAutoCorrect::IsAutoCorrectChar( sal_Unicode cChar ) cChar == '*' || cChar == '_' || cChar == '%' || cChar == '.' || cChar == ',' || cChar == ';' || cChar == ':' || cChar == '?' || cChar == '!' || -cChar == '/' || cChar == '-'; +cChar == '/'; +} + +namespace +{ +bool IsCompoundWordDelimChar(sal_Unicode cChar) +{ +return cChar == '-' || SvxAutoCorrect::IsAutoCorrectChar(cChar); +} } bool SvxAutoCorrect::NeedsHardspaceAutocorr( sal_Unicode cChar ) @@ -368,7 +376,7 @@ bool SvxAutoCorrect::FnCapitalStartWord( SvxAutoCorrDoc& rDoc, const OUString& r // Find all compound word delimiters for (sal_Int32 n = nSttPos; n < nEndPos; ++n) { -if (IsAutoCorrectChar(rTxt[ n ])) +if (IsCompoundWordDelimChar(rTxt[ n ])) { aDelimiters.push_back( n + 1 ); // Get position of char after delimiter } @@ -379,7 +387,7 @@ bool SvxAutoCorrect::FnCapitalStartWord( SvxAutoCorrDoc& rDoc, const OUString& r // char will not be included in rTxt. // If the last AutoCorrect char was not a newline, then the AutoCorrect // character will be the last character in rTxt. -if (!IsAutoCorrectChar(rTxt[nEndPos-1])) +if (!IsCompoundWordDelimChar(rTxt[nEndPos-1])) aDelimiters.push_back(nEndPos); // Iterate through the word and all words that compose it. @@ -1319,10 +1327,6 @@ void SvxAutoCorrect::DoAutoCorrect( SvxAutoCorrDoc& rDoc, const OUString& rTxt, OUString aPara; OUString* pPara = IsAutoCorrFlag(CapitalStartSentence) ? &aPara : nullptr; -// since LibO 4.1, '-' is a word separator -// fdo#67742 avoid "--" to be replaced by "â" if next is "-" -if( rTxt.endsWith( "---" ) ) -break; bool bChgWord = rDoc.ChgAutoCorrWord( nCapLttrPos, nInsPos, *this, pPara ); if( !bChgWord ) ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - editeng/source
editeng/source/misc/svxacorr.cxx |5 + 1 file changed, 5 insertions(+) New commits: commit d1de6e3d560407051faddb0497f36f644becd527 Author: Michael Stahl Date: Thu Sep 1 23:06:00 2016 +0200 editeng: don't let wild-card auto-correct leave current word If a paragraph has e.g. multiple -> in it then auto-correct of the first one will create via the .*->.* rule a new auto-correct entry that has as long-word the word that contains the first -> until the last -> and everything in between. This will be somewhat irritating when it is eventually applied. Avoid it by limiting the wild-card loop to the current word, which is apparently the intent anyway. (regression from a07425892205ff8951027ea20459b97370d01de6) Change-Id: I294bae863c44eb460627b61b4383133131fe4b3a Reviewed-on: https://gerrit.libreoffice.org/28608 Reviewed-by: László Németh Tested-by: Jenkins Reviewed-by: Michael Stahl (cherry picked from commit 9670f0d17ffed1ff07cb1deddcabc26c756e4bc1) Reviewed-on: https://gerrit.libreoffice.org/28633 Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara diff --git a/editeng/source/misc/svxacorr.cxx b/editeng/source/misc/svxacorr.cxx index 0bfd925..1fe52ca 100644 --- a/editeng/source/misc/svxacorr.cxx +++ b/editeng/source/misc/svxacorr.cxx @@ -2823,6 +2823,11 @@ const SvxAutocorrWord* SvxAutocorrWordList::WordMatches(const SvxAutocorrWord *p nSttWdPos = rTxt.indexOf( sTmp, nFndPos); if (nSttWdPos != -1) { +sal_Int32 nTmp(nFndPos); +while (nTmp < nSttWdPos && !IsWordDelim(rTxt[nTmp])) +nTmp++; +if (nTmp < nSttWdPos) +break; // word delimiter found buf.append(rTxt.copy(nFndPos, nSttWdPos - nFndPos)).append(pFnd->GetLong()); nFndPos = nSttWdPos + sTmp.getLength(); } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - editeng/source
editeng/source/misc/svxacorr.cxx |3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) New commits: commit 4edd7ed8bc2c75a23babe9893fdbe58dd7bcf562 Author: Caolán McNamara Date: Tue Aug 30 12:38:27 2016 +0100 Resolves: tdf#96369 don't superscript ordinals for mixed text and numbers e.g. 5th is ok, but foo5th is not this is basically a regression from commit 17e6b8fd05af8fff86847c0ef1e8cc9ad013a1bd Date: Thu Apr 7 13:33:48 2011 +0200 where the older code would only do the conversion if the string before the number was comprised of non-letters, so go back to that logic. Change-Id: I928c365eb11891e78331bbd165dbdb9541ac0361 (cherry picked from commit 776e2e2635487523cd1757f382f54487b36b5ad3) Reviewed-on: https://gerrit.libreoffice.org/28495 Tested-by: Jenkins Reviewed-by: Miklos Vajna diff --git a/editeng/source/misc/svxacorr.cxx b/editeng/source/misc/svxacorr.cxx index 5545432..0bfd925 100644 --- a/editeng/source/misc/svxacorr.cxx +++ b/editeng/source/misc/svxacorr.cxx @@ -461,13 +461,12 @@ bool SvxAutoCorrect::FnChgOrdinalNumber( bool bFoundEnd = false; bool isValidNumber = true; sal_Int32 i = nEndPos; - while (i > nSttPos) { i--; bool isDigit = rCC.isDigit(rTxt, i); if (bFoundEnd) -isValidNumber |= isDigit; +isValidNumber &= (isDigit || !rCC.isLetter(rTxt, i)); if (isDigit && !bFoundEnd) { ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - editeng/source include/editeng
editeng/source/items/numitem.cxx | 25 + include/editeng/numitem.hxx |8 +++- 2 files changed, 4 insertions(+), 29 deletions(-) New commits: commit 9cdf38e11f50e8b420e017b2dcf6b36f9f77c400 Author: Caolán McNamara Date: Tue Jul 19 21:47:29 2016 +0100 Resolves: tdf#97404 outline space wrong on second level Revert "tdf#42788: FORMATTING - Numbering/ordered list" This reverts commit 6517141b6233c5f9667031bc92f66109fddf5b76. https://gerrit.libreoffice.org/#/c/23006/ was apparently intended to revert this, but it never was Then there was https://gerrit.libreoffice.org/#/c/23427/ which was an attempt to improve it but it was abandoned Then there was https://gerrit.libreoffice.org/#/c/23542/ whichw as another attempt to improve it, but it was too abandoned. all of which leaves us worse than when we started with a pile of unhappy abandoned efforts and cruddy indent Change-Id: I8b3666a957339030d5a946a2b387f452e7fb0099 (cherry picked from commit 8617010b851e000f336cf647f207557b5eeab8b7) Reviewed-on: https://gerrit.libreoffice.org/27328 Tested-by: Jenkins Reviewed-by: Miklos Vajna diff --git a/editeng/source/items/numitem.cxx b/editeng/source/items/numitem.cxx index 2f2a80a..3c3fa19 100644 --- a/editeng/source/items/numitem.cxx +++ b/editeng/source/items/numitem.cxx @@ -151,7 +151,6 @@ SvxNumberFormat::SvxNumberFormat( sal_Int16 eType, SvxNumPositionAndSpaceMode ePositionAndSpaceMode ) : SvxNumberType(eType), eNumAdjust(SVX_ADJUST_LEFT), - mbNumAdjustChanged(false), nInclUpperLevels(0), nStart(1), cBullet(SVX_DEF_BULLET), @@ -181,8 +180,7 @@ SvxNumberFormat::SvxNumberFormat(const SvxNumberFormat& rFormat) : } SvxNumberFormat::SvxNumberFormat( SvStream &rStream ) -: mbNumAdjustChanged(false) -, nStart(0) +: nStart(0) , nBulletRelSize(100) , nFirstLineOffset(0) , nAbsLSpace(0) @@ -245,26 +243,6 @@ SvxNumberFormat::~SvxNumberFormat() delete pBulletFont; } -void SvxNumberFormat::SetNumberingType(sal_Int16 nSet) -{ -if(!mbNumAdjustChanged) -{ -// Right align Roman numbers, tdf#42788 -if(nSet == SVX_NUM_ROMAN_UPPER || nSet == SVX_NUM_ROMAN_LOWER) -eNumAdjust = SVX_ADJUST_RIGHT; -else if (eNumAdjust == SVX_ADJUST_RIGHT && (GetNumberingType() == SVX_NUM_ROMAN_UPPER || GetNumberingType() == SVX_NUM_ROMAN_LOWER)) -eNumAdjust = SVX_ADJUST_LEFT; -} - -SvxNumberType::SetNumberingType(nSet); -} - -void SvxNumberFormat::SetNumAdjust(SvxAdjust eSet) -{ -eNumAdjust = eSet; -mbNumAdjustChanged = true; -} - void SvxNumberFormat::Store(SvStream &rStream, FontToSubsFontConverter pConverter) { if(pConverter && pBulletFont) @@ -338,7 +316,6 @@ SvxNumberFormat& SvxNumberFormat::operator=( const SvxNumberFormat& rFormat ) SvxNumberType::SetNumberingType(rFormat.GetNumberingType()); eNumAdjust = rFormat.eNumAdjust ; -mbNumAdjustChanged = rFormat.mbNumAdjustChanged; nInclUpperLevels= rFormat.nInclUpperLevels ; nStart = rFormat.nStart ; cBullet = rFormat.cBullet ; diff --git a/include/editeng/numitem.hxx b/include/editeng/numitem.hxx index 775e8f1..e4ccbea 100644 --- a/include/editeng/numitem.hxx +++ b/include/editeng/numitem.hxx @@ -60,12 +60,12 @@ class EDITENG_DLLPUBLIC SvxNumberType public: explicit SvxNumberType(sal_Int16 nType = css::style::NumberingType::ARABIC); SvxNumberType(const SvxNumberType& rType); -virtual ~SvxNumberType(); +~SvxNumberType(); OUStringGetNumStr( sal_uLong nNo ) const; OUStringGetNumStr( sal_uLong nNo, const css::lang::Locale& rLocale ) const; -virtual voidSetNumberingType(sal_Int16 nSet) {nNumType = nSet;} +voidSetNumberingType(sal_Int16 nSet) {nNumType = nSet;} sal_Int16 GetNumberingType() const {return nNumType;} voidSetShowSymbol(bool bSet) {bShowSymbol = bSet;} @@ -99,7 +99,6 @@ private: OUString sSuffix; SvxAdjust eNumAdjust; -boolmbNumAdjustChanged; sal_uInt8 nInclUpperLevels; // Take over numbers from the previous level. sal_uInt16 nStart; // Start of counting @@ -155,8 +154,7 @@ public: booloperator==( const SvxNumberFormat& ) const; booloperator!=( const SvxNumberFormat& rFmt) const {return !(*this == rFmt);} -voidSetNumberingType(sal_Int16 nSet) override; -voidSetNumAdjust(SvxAdjust eSet); +voidSetNumAdjust(SvxAdjust eSet) {eNumAdjust = eSet;} SvxAdjust GetNumAdjust() const {return eNumAdjust;} voidSetPrefix(const OUString& rSet) { sPrefix = rSet;} const OUString&
[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - editeng/source
editeng/source/editeng/impedit4.cxx |6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) New commits: commit 21770181089cdd4c42c5ef810c49439e7daede30 Author: Caolán McNamara Date: Wed Jul 13 16:56:14 2016 +0100 tdf#100880 editeng spellchecking doesn't work sometimes... believe to be a regression from commit 73f0b3bd5553c5d023d0a1dbfdc00836e2937961 Author: Matteo Casalin Date: Sat Dec 28 13:37:26 2013 +0100 xub_StrLen to sal_Int32 + some const and lets fix it the same way commit 9705fbc1119da91e73c00a2ec848565929eeb483 Author: Norbert Thiebaud Date: Sun Mar 2 12:19:16 2014 -0600 Fix editeng missing spellchecking redline on load (probably) fixed some other regression caused by that Change-Id: I52775aff50dcc634fd2f08eb685cc4ad9850c82c (cherry picked from commit 71ab1ee978a6da8edeabc7c65e9a34e679ec8e43) Reviewed-on: https://gerrit.libreoffice.org/27197 Tested-by: Jenkins Reviewed-by: Miklos Vajna diff --git a/editeng/source/editeng/impedit4.cxx b/editeng/source/editeng/impedit4.cxx index 07ad13a..ec4a36a 100644 --- a/editeng/source/editeng/impedit4.cxx +++ b/editeng/source/editeng/impedit4.cxx @@ -2282,8 +2282,8 @@ void ImpEditEngine::DoOnlineSpelling( ContentNode* pThisNodeOnly, bool bSpellAtC if (!pNode->GetWrongList()->IsValid()) { WrongList* pWrongList = pNode->GetWrongList(); -const sal_Int32 nInvStart = pWrongList->GetInvalidStart(); -const sal_Int32 nInvEnd = pWrongList->GetInvalidEnd(); +const size_t nInvStart = pWrongList->GetInvalidStart(); +const size_t nInvEnd = pWrongList->GetInvalidEnd(); sal_Int32 nPaintFrom = -1; sal_Int32 nPaintTo = 0; @@ -2295,7 +2295,7 @@ void ImpEditEngine::DoOnlineSpelling( ContentNode* pThisNodeOnly, bool bSpellAtC EditSelection aSel( aPaM, aPaM ); while ( ( aSel.Max().GetNode() == pNode ) /* && !bStop */ ) { -if ( ( aSel.Min().GetIndex() > nInvEnd ) +if ( ( static_cast(aSel.Min().GetIndex()) > nInvEnd ) || ( ( aSel.Max().GetNode() == pLastNode ) && ( aSel.Max().GetIndex() >= pLastNode->Len() ) ) ) break; // Document end or end of invalid region ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - editeng/source
editeng/source/outliner/outliner.cxx |2 ++ 1 file changed, 2 insertions(+) New commits: commit 79e3fd9df519bc5aad349f137d4aa74168e9ef2e Author: Mike Kaganski Date: Sat Jul 2 23:07:15 2016 +1000 tdf#100734: Update bullet of paragraph on UNDO Change-Id: I1afe0b4ca537eea752d3bced8bbc8944380c3514 Reviewed-on: https://gerrit.libreoffice.org/26874 Tested-by: Jenkins Reviewed-by: Andras Timar (cherry picked from commit 3a9c151e6eeb3c81902fab2644522a8df9e7161d) Reviewed-on: https://gerrit.libreoffice.org/26893 Reviewed-by: Miklos Vajna diff --git a/editeng/source/outliner/outliner.cxx b/editeng/source/outliner/outliner.cxx index 906367c..f865256 100644 --- a/editeng/source/outliner/outliner.cxx +++ b/editeng/source/outliner/outliner.cxx @@ -1497,6 +1497,8 @@ void Outliner::ParaAttribsChanged( sal_Int32 nPara ) if ( pParaList->GetParagraphCount() == pEditEngine->GetParagraphCount() ) { Paragraph* pPara = pParaList->GetParagraph( nPara ); +// tdf#100734: force update of bullet +pPara->Invalidate(); const SfxInt16Item& rLevel = static_cast( pEditEngine->GetParaAttrib( nPara, EE_PARA_OUTLLEVEL ) ); if ( pPara && pPara->GetDepth() != rLevel.GetValue() ) { ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits