diff options
author | Caolán McNamara <caolanm@redhat.com> | 2020-04-24 16:38:26 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2020-04-24 21:03:57 +0200 |
commit | 9e8bb8fa8a77665552db9c01cac1034d5040da7b (patch) | |
tree | 0fb53156d4b008049385cf621ec06273ce098d1a /editeng | |
parent | 3b5e0316f755b9981ed4f4032c2c362407b808f6 (diff) |
Resolves: tdf#132288 don't merge adjacent properties for spell checking
spell checking relies on each attribute chunk being unmerged with identical
adjacent chunks
Change-Id: Ia835fa054cad0dee4304f16724b9eb0c29b46102
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92866
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'editeng')
-rw-r--r-- | editeng/inc/editdoc.hxx | 3 | ||||
-rw-r--r-- | editeng/source/editeng/editdoc.cxx | 12 | ||||
-rw-r--r-- | editeng/source/editeng/editeng.cxx | 4 |
3 files changed, 18 insertions, 1 deletions
diff --git a/editeng/inc/editdoc.hxx b/editeng/inc/editdoc.hxx index 454f764bbb48..2a5fc1e3f8de 100644 --- a/editeng/inc/editdoc.hxx +++ b/editeng/inc/editdoc.hxx @@ -731,6 +731,7 @@ private: bool bOwnerOfPool:1; bool bModified:1; + bool bDisableAttributeExpanding:1; private: void ImplDestroyContents(); @@ -745,6 +746,8 @@ public: bool IsModified() const { return bModified; } void SetModified( bool b ); + void DisableAttributeExpanding() { bDisableAttributeExpanding = true; } + void SetModifyHdl( const Link<LinkParamNone*,void>& rLink ) { aModifyHdl = rLink; } void CreateDefFont( bool bUseStyles ); diff --git a/editeng/source/editeng/editdoc.cxx b/editeng/source/editeng/editdoc.cxx index ebc55808da25..fbcb4c51ed41 100644 --- a/editeng/source/editeng/editdoc.cxx +++ b/editeng/source/editeng/editdoc.cxx @@ -1908,7 +1908,8 @@ EditDoc::EditDoc( SfxItemPool* pPool ) : mnRotation(TextRotation::NONE), bIsFixedCellHeight(false), bOwnerOfPool(pPool == nullptr), - bModified(false) + bModified(false), + bDisableAttributeExpanding(false) { // Don't create an empty node, Clear() will be called in EditEngine-CTOR }; @@ -2369,6 +2370,15 @@ void EditDoc::InsertAttribInSelection( ContentNode* pNode, sal_Int32 nStart, sal RemoveAttribs( pNode, nStart, nEnd, pStartingAttrib, pEndingAttrib, rPoolItem.Which() ); + // tdf#132288 By default inserting an attribute beside another that is of + // the same type expands the original instead of inserting another. But the + // spell check dialog doesn't want that behaviour + if (bDisableAttributeExpanding) + { + pStartingAttrib = nullptr; + pEndingAttrib = nullptr; + } + if ( pStartingAttrib && pEndingAttrib && ( *(pStartingAttrib->GetItem()) == rPoolItem ) && ( *(pEndingAttrib->GetItem()) == rPoolItem ) ) diff --git a/editeng/source/editeng/editeng.cxx b/editeng/source/editeng/editeng.cxx index 1b76d967b3ba..73d85a07b7ce 100644 --- a/editeng/source/editeng/editeng.cxx +++ b/editeng/source/editeng/editeng.cxx @@ -2814,6 +2814,10 @@ bool EditEngine::IsPageOverflow() { return pImpEditEngine->IsPageOverflow(); } +void EditEngine::DisableAttributeExpanding() { + pImpEditEngine->GetEditDoc().DisableAttributeExpanding(); +} + EFieldInfo::EFieldInfo() { } |