Age | Commit message (Collapse) | Author |
|
Change-Id: Ie5d62eaec01a3b06ff1bd6070510384641ea7ad3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134483
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
(cherry picked from commit 1f8795df957c18c5c06bf1d68d0d60b1d30f015d)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134448
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
|
|
The problem is the UpdateFramesForAddDeleteRedline() call in makeMark(),
this is called in a loop for multiple fieldmarks and when it's called
for the first one, of course the other ones aren't in the document yet,
so HideIterator::Next() can't find them.
But this is only needed when inserting a new fieldmark anyway, so just
disable for copying.
(regression from commit 92384a813176b964a67bcbeb2fa617c554dbc4a2)
Change-Id: Ic1b34d469a553cf7bbf2d1a99edaea900bdd7417
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133215
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
(cherry picked from commit 2f726fa41cbd249f2fb30222b29d5f30bce52e6e)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133148
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
|
|
Previous fix for tdf#146257 was not complete and was not able to
take care of disabled numebering started just at beginning of the
numbering string.
UI test test_tdf144439_outline with modifications is covering this
situation. No need in extra testcases.
Change-Id: Id17838cec7fb4fb039f9b457b7ee9ad3ab345678
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133124
Tested-by: Jenkins
Reviewed-by: Vasily Melenchuk <vasily.melenchuk@cib.de>
(cherry picked from commit a31a7b53c42eef3a8007766c60ec5a2539054a7c)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133135
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
|
|
It seems that the intention is to reset properties which are possible to
set in a style when applying a style. For example the paragraph
alignment can be defined in a paragraph style, so reset that on style
apply.
URLs on frames can't be defined for frame styles, so it looks incorrect
to reset the URL of a frame/image on style apply, fix this.
Change-Id: Ie3a57b654cf06b9512b25d2dc103d15cd83727b7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132675
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
(cherry picked from commit 97c18cf32a9a3088b5a51e2b0d535d8caf5daca8)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132697
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
|
|
The problem is that SwXTextTableCursor::mergeRange() wants to move some
nodes, and the deleteMarks() deletes a fieldmark creating a SaveBookmark
but it contains the positions relative to the CH_TXT_ATR_FIELD* still in
the text, while deleting the fieldmark of course removes these.
The SaveBookmark would need to adjust the indexes and store the
separator position too and the vector would need to be restored in
reverse order.
But every time the SaveBookmarks are created, they are restored as well,
so it looks simpler to just suppress deleting the CH_TXT_ATR_FIELD* in
this case, and inserting them too (latter is already done when copying
text).
Change-Id: I690c6432a38eab6dec10adff74e638f0e52cca55
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132531
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
(cherry picked from commit 5d41c2461642364b7159398024acccbee12f6e3e)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132589
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
|
|
The problem is that a get field in a header on page N may calculate and
show values that do not take into account a set field on page N-1.
This happens if a table row with multiple columns is split across the
pages: SwGetExpField::ChangeExpansion() calls GetBodyTextNode(), which
returns the first node in the first column that is on page N, but in the
SwNodes array this node is *before* any node in columns 2..M, any of
which may be on page N-1 in the layout.
So try to fix this by adding a page number to SetGetExpField and using
that as the highest priority in operator<().
This is a bit risky because some of the places that create
SetGetExpField don't have a frame to get the page number from; try to
adapt all that call into MakeFieldList(), while leaving unrelated ones
such as in MakeSetList() unchanged.
Change-Id: Ied2a897ad34f0faf1ef3d50baad07b23fafd49bd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132641
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
(cherry picked from commit 9dc6e2c9062725ef1f9d7e321cae5f4dbe8ca749)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132645
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
|
|
The problem is that CorrAbs() will move any position of a fieldmark
that's in the deleted SwTextNodes to a different node that doesn't have
the CH_TXT_ATR_FIELD*.
Then it will inevitably crash later when it can't find its chars.
The other problem is that if there's only a CH_TXT_ATR_FIELDSEP in the
deleted nodes, that fieldmark would then be missing it.
Just delete fieldmarks with positions in deleted nodes, that should work
fine for the usual cases where DelFullPara() is called.
Change-Id: I8dfac9a315d74025dbe1ed5ccb95b7c9121fb569
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132379
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
It looks like in cross-references ending with dot (".") one last
dot is removed in case of MS Word. This is not a true for any other
suffixes after numeration.
Change-Id: I554e62cf45e643bf27823df5344e1689b5b6ae54
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131254
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131542
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
|
|
This can cause:
soffice.bin: sw/source/core/undo/undobj.cxx:1486: static void SwUndo::SetSaveData(SwDoc&, SwRedlineSaveDatas&): Assertion `rSData.empty() || rSData[0].m_bRedlineMoved || (rSData[0].m_nRedlineCount == rDoc.getIDocumentRedlineAccess().GetRedlineTable().size())' failed.
When one character in middle of Format redline is deleted, then Undo.
The condition is quite odd and apparently from initial CVS import; try
to copy condition for merging Insert redlines instead.
Change-Id: Ib56e12914269b878c16813b9e95b2f0df3330bbe
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131208
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
(cherry picked from commit 53560aa06462f1cf04d69acafed20da971bc5c27)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131196
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
|
|
In Hide Changes mode, deleting table rows with change tracking
wasn't applied on the table layout immediately, only using Show
Changes and Hide Changes again. Now the deleted row removed from
the table instead leaving an empty table row (except the last
row of a wholly deleted table).
See also commit 95213407dfcbf34056037d60243ff915340d1a2e
"tdf#146622 sw crash fix: don't delete already deleted rows".
Change-Id: I864957cafa38e631a65db0670c7b566cb689f4cd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130701
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth@numbertext.org>
(cherry picked from commit a74c51025fa4519caaf461492e4ed8e68bd34885)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130685
Tested-by: László Németh <nemeth@numbertext.org>
|
|
Avoid rounding trouble when converting to DOCX
Change-Id: Ie30f66671654b64b0b2596b14dc89d6f9befa8d1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130475
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
(cherry picked from commit 3c94c670fa3c3a4e00e88de7463c5e35f32b866e)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130455
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
|
|
Change-Id: I21a3a3e544c016205d65d7e81889ebfddc7e322d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129563
Tested-by: Jenkins
Reviewed-by: Andras Timar <andras.timar@collabora.com>
|
|
The problem is similar to commit eef10be20a4c5108c68b19ccdda263c5ca852386,
there is a fieldmark in a fly and this results in
UpdateFramesForRemoveDeleteRedline() re-creating fly frames that have
already been deleted in SwUndoFlyBase::DelFly(), and then the
SwFlyAtContentFrame::SwClientNotify() crashes on a null anchor position
in the SwFormat::ResetFormatAttr(RES_ANCHOR).
This time the passed rPam is empty, after removing the dummy characters
of the fieldmark; there isn't really anything to do in this case so
just return.
Change-Id: I475b8fcb0bcf94be58ff553454c261d75076303b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129308
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
(cherry picked from commit bdf1d9b8151476531f2fbe06f66db260efcbc529)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129266
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
|
|
Commit ab6176e88f78d0b3aa2490fbc7858304c2d4a437 introduced a crash
in ModelToViewHelper when the positions of a NonTextFieldmark are invalid.
The NonTextFieldmark must always contain 1 CH_TXT_ATR_FORMELEMENT
but after SplitNode() the position is
(rr) p *pFieldMark->m_pPos1
$2 = SwPosition (node 10, offset 1)
(rr) p *pFieldMark->m_pPos2
$3 = SwPosition (node 9, offset 0)
This is because in ContentIdxStoreImpl::SaveBkmks() there is an
asymmetry where the m_pPos2 is recorded to be wrongly corrected to node
9, but if the positions were swapped so that m_pPos1 is the start
position, then it will not be recorded and remain in node 10.
So fix this by changing the NonTextFieldmark to insert its
CH_TXT_ATR_FORMELEMENT differently.
There is some very subtle code in SwTextNode::Update() that is again
asymmetric and (non-obviously) prefers to move m_pPos2 and leave m_pPos1
alone (by moving it to aTmpIdxReg) in case the positions are equal.
But then the fieldmark code increments "rEnd" (which is really the
m_pPos1 i.e. the start after InsertString() returns), and then
decrements m_pPos2.
So avoid the problem by removing these 2 pointless adjustments.
Then it turns a bunch of tests fail because other code assumes that
m_pPos1 is the end of the NonTextFieldmark, so fix
MarkManager::changeFormFieldmarkType(), ModelToViewHelper and
SwHistoryNoTextFieldmark to use GetMarkStart().
Change-Id: I7c82f9a67661121662c95727e0f8f15e06d85a3a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129289
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
(cherry picked from commit ea06852ee87531794f07710de496734a647a9062)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129265
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
|
|
mode at moving text.
Test: in Hide Changes mode, move the selected text by
cutting and pasting it with change tracking. Before the fix,
hidden deletion reappeared again (only clicking on Show
Changes and Hide Changes again fixed the layout).
Regression from commit f51fa7534421a195a58b4a737a2e836d8c25ba81
"tdf#145718 sw, DOCX import: complete tracked text moving"
(cherry picked from commit a2d9b270ce8537ebb59de50ebd07697fe9aa191b)
Conflicts:
sw/qa/extras/layout/layout2.cxx
Change-Id: Ia86f570bd634dd513fdbb93a83a929fd0ba4e273
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129278
Reviewed-by: László Németh <nemeth@numbertext.org>
Tested-by: Jenkins
|
|
Re-insertion of hundreds of redlines during Undo resulted
freezing, because of the unnecessary call of isMoved() in
SwRedlineTable::Insert(), multiplying the slow Undo by
~40 extra redline checkings around each redline to find
tracked text movings.
Stop unnecessary call of isMoved() during Undo in
SwRedlineTable::Insert(). The state of isMoved bit i.e.
the green/double strikethrough/underline redline
formatting is preserved anyway.
Regression from commit f51fa7534421a195a58b4a737a2e836d8c25ba81
"tdf#145718 sw, DOCX import: complete tracked text moving".
Change-Id: Ib7901c7b4fefd87633c49ef252750b84dcdb73dc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128762
Tested-by: László Németh <nemeth@numbertext.org>
Reviewed-by: László Németh <nemeth@numbertext.org>
(cherry picked from commit b15638440d692dd8cce55c0e936fbb82d24f8414)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128953
|
|
For OLE/Charts in SW we do not (yet) have a refresh
mechanism or embedding of the primitive represetation, so this
needs to be done locally here (simple solution).
To have the Chart already invalidated at the next repaint,
I needed to add a 'immediate' mode to InvalidateTable.
Note: The text there claiming that the framework should do this
is correct, but as long as the mechanism is incomplete (VC/VOC/OC
in SW) direct refresh is needed.
Change-Id: I3c845b3ec46fbb494e7bce163cfe105145421450
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128572
Tested-by: Jenkins
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
(cherry picked from commit d769e75de28a1afbb1df31b48840626cb35ed7ba)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128810
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
|
|
Rename getDropDownsFor() to getNoTextFieldmarksIn().
Move some code so that sw::mark::ExpandFieldmark can expand all
fieldmarks that use CH_TXT_ATR_FORMELEMENT.
Change-Id: I8a1e28fc0ad77df3a749d9e55c306cb45187a082
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128606
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
(cherry picked from commit 4565382ee6f8fec96f0df94c34a2567816291c2e)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128538
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
|
|
Previously during refactoring were lost some corner cases with
some level having disabled numbering. In this case LO should
strip useless delimiters up to next level.
For example, if second level has disabled numbering, third level
should look like "1.1", but not "1..1".
Change-Id: I259a16b456f51bc76d5c8360974d0acadfc36776
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127517
Tested-by: Jenkins
Reviewed-by: Vasily Melenchuk <vasily.melenchuk@cib.de>
(cherry picked from commit bf2b46aa15665dde63ceff4e7686b99b3990354f)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127569
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
|
|
When pasting, the entire document body is covered by a delete redline.
The insert position is in the last node, whose SwTextFrame has a
MergedPara, and the problem is that the MergedPara::pLastNode continues
to point to the last node of the document, even when the delete redline
is adjusted to end in a newly inserted node by
SaveRedlEndPosForRestore::Restore().
Thus afer the 2nd paste, SwDoc::SearchNumRule() goes into infinite loop
from node 141 to 86 and then jump via the bad MergedPara back to 141.
The reason is that in DocumentContentOperationsManager::CopyWithFlyInFly()
the RecreateStartTextFrames() isn't called.
This is because it only checks if the preceding node is a text node,
while here it is a table node.
Fix this by checking if the node at the insert position is merged to a
node preceding the previous node.
Change-Id: I103b60b2bec86af11006ed591cfda2feb5f575a3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127273
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
(cherry picked from commit 70ac13eecfa620e94770a64110eeaa05f8c266e6)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127253
|
|
Fix Undo of accepting table row insertion to get back
the "false" value of HasTextChangesOnly property and the
associated light blue table row background.
This fixes also the missing update of the table row
background at accepting the table row insertion.
Follow-up to commit 8c028b7e41e3d350d0e67005b16faf0159cc5c12
"tdf#146244 sw: update HasTextChangesOnly in modified rows".
Change-Id: I8e2436b6b7b67f06037481955ff22cdbc2b22dc0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127228
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth@numbertext.org>
(cherry picked from commit 1edaee2f03bce0efa409c592919458658d0aa751)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127186
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
|
|
It's not forbidden to write in rows deleted or
inserted with change tracking, also Accept/Reject
only part of the text changes here. Improve to
handle these in SwTableLine::UpdateTextChangesOnly()
by keeping property HasTextChangesOnly = false
(tracked row change) only if
1) there is an insert redline, which is the oldest redline in
the row (tracked row insertion) or
2) there is a delete redline, which is the newest redline in
the row, and no text outside of redlines, and no insert
redline in the row, i.e. whole text content is deleted
(tracked row deletion).
Also update HasTextChangesOnly table row property at accepting
SwRangeRedlines in changed table rows.
And follow-up bug fix commits of this:
commit bc206f7fd3b4a9e843c81f39dcd2faeeff9c785a
"cid#1495785 silence Unchecked return value" and
commit 213173edc5e47bb6da11f9a301f4dca71854a48c
"sw: fix crash with commit 8c028b7e41e3d350d0e67005b16faf0159cc5c12".
(cherry-picked from commit 8c028b7e41e3d350d0e67005b16faf0159cc5c12,
commit bc206f7fd3b4a9e843c81f39dcd2faeeff9c785a and
commit 213173edc5e47bb6da11f9a301f4dca71854a48c)
Change-Id: I2bc556c732e1d0fdca24678c79351aafbfc156b2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127195
Tested-by: László Németh <nemeth@numbertext.org>
Reviewed-by: László Németh <nemeth@numbertext.org>
|
|
The InsertPageBreak() calls SplitNode() which is not ideal as the flys
anchored at the last node of the document may end up anchored to the
newly inserted node and this one will be removed again a bit further on:
GetNodes().Delete( aDelIdx, iDelNodes );
... which is what crashes, when the SwNodeIndex of the anchor is moved
hard to a different node, which causes inconsistencies such as:
sw/source/core/text/txtfrm.cxx:1263: TextFrameIndex SwTextFrame::MapModelToView(const SwTextNode*, sal_Int32) const: Assertion `static_cast<SwTextNode*>(const_cast<sw::BroadcastingModify*>(SwFrame::GetDep())) == pNode' failed.
Instead, always use AppendTextNode() and then set the break item
directly, which even simplifies the code.
(reportedly a regression from 166b5010b402a41b192b1659093a25acf9065fd9
although i wasn't able to find an earlier version that didn't crash
in some way)
Change-Id: I4cac74fc86fc505f62b14cf0d7a7f9689c7402ba
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126921
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
(cherry picked from commit 42448f48bb48a13d6618a181b12840db6d85c574)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126944
|
|
The GetNext() returns itself if it's alone in the Ring.
(regression from 27aa4b16bf704d0246595750daf57b57ff2577b3)
Change-Id: Idf92ce5362c4a4acf1582f463fe7bafc8553b400
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126844
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
(cherry picked from commit 19f2054c6063177d08c818c5b7eeba7ab9178249)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126823
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
|
|
This broke in CWS swrefactormarks2 (commit
df6d312ca537402463e4eb0530f22b956600fc02) but for spell-checking the
ReplaceRange() wasn't used until commit
e1629c210ad78310e3d48c0756723134a27b89df.
Change-Id: I4a6256b65b89e21e9e87ff45d0c5e6c4577a5846
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126842
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
(cherry picked from commit d16c5f47600d236e911ae50d0e58a3f2256f5a61)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126821
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
|
|
Importing DOCX tables with tracked row deletion and insertion,
accepting them, Undo, and accepting them again (or Redo)
crashed LibreOffice, related to the missing Undo support
of deletions in SwExtraRedlineTable.
SwTableRowRedline is not used for DOCX export since
commit dbc2bdffbec9b3f7eba485652cdd43634458b5a6
"tdf#145091 DOCX: don't export obsolete table row change data",
so it's possible to switch off deletion of row changes
in SwExtraRedlineTable to fix crashing, keeping SwTableRowRedline
only to fix the round-trip of the original row change Date
temporarily.
Change-Id: I6ac571656e45c4299a07a63646bb28d6d1fcd081
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126662
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth@numbertext.org>
(cherry picked from commit 6a9cf64ea7509aac258f290cc1f204fd1ce1f974)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126748
|
|
(Also a small clean-up: increase the character limit for tracked text
moving detection: Only 2 or more (non-whitespace) character deletions
are checked for it, because single characters are often typos or some
control-like characters, e.g. soft hyphen, not real text movings.)
Details of the regression: commit d32d9a2b3c5e3963f4a18f6c7bbf50fab2e9b2be
"tdf#123460 DOCX track changes: moveFrom completely" fixed
the missing redline import of the end of the moved paragraphs,
but paragraph end was imported as w:del, not w:moveFrom explicitly.
From commit f51fa7534421a195a58b4a737a2e836d8c25ba81
"tdf#145718 sw, DOCX import: complete tracked text moving"
this resulted two deletions (a moved one and a plain one) instead of
the previous single one.
Moreover, exporting these double deletions at the same position to
ODT, raised a back-compatibility issue with broken text content, see
tdf#107292 (solved recently, but not in older LibreOffice versions).
Removing the explicit w:del code path in writerfilter, it solved
the regression from commit f51fa7534421a195a58b4a737a2e836d8c25ba81
"tdf#145718 sw, DOCX import: complete tracked text moving".
See also commit 9e1e88ad5cf2dc0e9b188c60930445652a6c7519
"tdf#145720 DOCX export: fix loss of tracked moving".
Change-Id: I15bfc83b87dd42a762ff84edf5bae765fe02a5ae
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126631
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth@numbertext.org>
(cherry picked from commit 692bc46b25db61176b4ced7b7beffeca7d55068e)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126669
Tested-by: László Németh <nemeth@numbertext.org>
|
|
Add compatibility option FOOTNOTE_IN_COLUMN_TO_PAGEEND to keep layout
of old ODT files, where multicolumn sections have footnotes in columns,
growing sections to the full page.
Note: Multicolumn page styles or not evenly distributed multicolumn
sections, or footnotes not collected at the end of the sections still
use footnotes in columns, so they don't need this compatibility option.
Follow-up to commit 4c31b4ef2083087a822c3ae648fd09acc67d2f88
"tdf#139336 sw: fix extra pages of multicolumn sections with footnotes".
Co-authored-by: Tibor Nagy (NISZ)
Change-Id: I7d6a1f804b555dc5372767014b8fb5e3fa57ba9b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125442
Tested-by: László Németh <nemeth@numbertext.org>
Reviewed-by: László Németh <nemeth@numbertext.org>
(cherry picked from commit 41cc1d2c0c0c3bfa5ba341311f68df05375859fb)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126001
Reviewed-by: Attila Szűcs <szucs.attila3@nisz.hu>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
|
|
This reverts commit eabcfb3f18a6944d9ad89cecd3eb3ca7a2259cf3.
Conflicts:
sw/source/core/doc/textboxhelper.cxx
It caused UITest_writer_tests4 to fail in an ASan build with
> ==2987325==ERROR: AddressSanitizer: heap-use-after-free on address 0x6130000e5048 at pc 0x7f20cb3112ac bp 0x7f1e62de92d0 sp 0x7f1e62de92c8
> WRITE of size 8 at 0x6130000e5048 thread T47
> #0 in SwFrameFormat::SetOtherTextBoxFormat(SwTextBoxNode*) at sw/inc/frmfmt.hxx:106:77
> #1 in SwTextBoxNode::~SwTextBoxNode() at sw/source/core/doc/textboxhelper.cxx:1680:30
> #2 in SwFrameFormat::~SwFrameFormat() at sw/source/core/layout/atrfrm.cxx:2564:9
> #3 in SwDrawFrameFormat::~SwDrawFrameFormat() at sw/source/core/layout/atrfrm.cxx:3455:1
> #4 in SwDrawFrameFormat::~SwDrawFrameFormat() at sw/source/core/layout/atrfrm.cxx:3453:1
> #5 in SwFrameFormats::DeleteAndDestroyAll(bool) at sw/source/core/doc/docfmt.cxx:2115:9
> #6 in SwDoc::~SwDoc() at sw/source/core/doc/docnew.cxx:565:28
> #7 in SwDoc::release() at sw/source/core/doc/doc.cxx:118:9
> #8 in rtl::Reference<SwDoc>::clear() at include/rtl/ref.hxx:196:19
> #9 in SwDocShell::RemoveLink() at sw/source/uibase/app/docshini.cxx:444:16
> #10 in SwDocShell::~SwDocShell() at sw/source/uibase/app/docshini.cxx:372:5
> #11 in SwDocShell::~SwDocShell() at sw/source/uibase/app/docshini.cxx:362:1
> #12 in SwDocShell::~SwDocShell() at sw/source/uibase/app/docshini.cxx:362:1
> #13 in SvRefBase::ReleaseRef() at include/tools/ref.hxx:163:29
> #14 in tools::SvRef<SfxObjectShell>::~SvRef() at include/tools/ref.hxx:56:36
> #15 in IMPL_SfxBaseModel_DataContainer::~IMPL_SfxBaseModel_DataContainer() at sfx2/source/doc/sfxbasemodel.cxx:245:5
> #16 in void std::destroy_at<IMPL_SfxBaseModel_DataContainer>(IMPL_SfxBaseModel_DataContainer*) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/12.0.0/../../../../include/c++/12.0.0/bits/stl_construct.h:88:15
> #17 in void std::allocator_traits<std::allocator<IMPL_SfxBaseModel_DataContainer> >::destroy<IMPL_SfxBaseModel_DataContainer>(std::allocator<IMPL_SfxBaseModel_DataContainer>&, IMPL_SfxBaseModel_DataContainer*) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/12.0.0/../../../../include/c++/12.0.0/bits/alloc_traits.h:537:4
> #18 in std::_Sp_counted_ptr_inplace<IMPL_SfxBaseModel_DataContainer, std::allocator<IMPL_SfxBaseModel_DataContainer>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/12.0.0/../../../../include/c++/12.0.0/bits/shared_ptr_base.h:528:2
> #19 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/12.0.0/../../../../include/c++/12.0.0/bits/shared_ptr_base.h:168:6
> #20 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/12.0.0/../../../../include/c++/12.0.0/bits/shared_ptr_base.h:705:11
> #21 in std::__shared_ptr<IMPL_SfxBaseModel_DataContainer, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/12.0.0/../../../../include/c++/12.0.0/bits/shared_ptr_base.h:1154:31
> #22 in std::__shared_ptr<IMPL_SfxBaseModel_DataContainer, (__gnu_cxx::_Lock_policy)2>::reset() at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/12.0.0/../../../../include/c++/12.0.0/bits/shared_ptr_base.h:1272:9
> #23 in SfxBaseModel::dispose() at sfx2/source/doc/sfxbasemodel.cxx:757:13
> #24 in SwXTextDocument::dispose() at sw/source/uibase/uno/unotxdoc.cxx:549:19
> #25 in SfxBaseModel::close(unsigned char) at sfx2/source/doc/sfxbasemodel.cxx:1482:5
> #26 in SwXTextDocument::close(unsigned char) at sw/source/uibase/uno/unotxdoc.cxx:562:19
> #27 in SfxBaseModel::dispose() at sfx2/source/doc/sfxbasemodel.cxx:718:13
> #28 in SwXTextDocument::dispose() at sw/source/uibase/uno/unotxdoc.cxx:549:19
> #29 in gcc3::callVirtualMethod(void*, unsigned int, void*, _typelib_TypeDescriptionReference*, bool, unsigned long*, unsigned int, unsigned long*, double*) at bridges/source/cpp_uno/gcc3_linux_x86-64/callvirtualmethod.cxx:77:5
> #30 in cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy*, bridges::cpp_uno::shared::VtableSlot, _typelib_TypeDescriptionReference*, int, _typelib_MethodParameter*, void*, void**, _uno_Any**) at bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:233:13
> #31 in unoInterfaceProxyDispatch at bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:413:13
> #32 in binaryurp::IncomingRequest::execute_throw(binaryurp::BinaryAny*, std::__debug::vector<binaryurp::BinaryAny, std::allocator<binaryurp::BinaryAny> >*) const at binaryurp/source/incomingrequest.cxx:235:13
> #33 in binaryurp::IncomingRequest::execute() const at binaryurp/source/incomingrequest.cxx:78:26
> #34 in request at binaryurp/source/reader.cxx:85:9
> #35 in cppu_threadpool::JobQueue::enter(void const*, bool) at cppu/source/threadpool/jobqueue.cxx:100:17
> #36 in cppu_threadpool::ORequestThread::run() at cppu/source/threadpool/thread.cxx:164:31
> #37 in threadFunc at include/osl/thread.hxx:189:15
> #38 in osl_thread_start_Impl(void*) at sal/osl/unx/thread.cxx:264:9
> #39 in start_thread at <null>
> #40 in __GI___clone3 at <null>
>
> 0x6130000e5048 is located 328 bytes inside of 376-byte region [0x6130000e4f00,0x6130000e5078)
> freed by thread T47 here:
> #0 in operator delete(void*, unsigned long) at ~/github.com/llvm/llvm-project/compiler-rt/lib/asan/asan_new_delete.cpp:164:3
> #1 in SwFlyFrameFormat::~SwFlyFrameFormat() at sw/source/core/layout/atrfrm.cxx:2912:1
> #2 in SwFrameFormats::DeleteAndDestroyAll(bool) at sw/source/core/doc/docfmt.cxx:2115:9
> #3 in SwDoc::~SwDoc() at sw/source/core/doc/docnew.cxx:565:28
> #4 in SwDoc::release() at sw/source/core/doc/doc.cxx:118:9
> #5 in rtl::Reference<SwDoc>::clear() at include/rtl/ref.hxx:196:19
> #6 in SwDocShell::RemoveLink() at sw/source/uibase/app/docshini.cxx:444:16
> #7 in SwDocShell::~SwDocShell() at sw/source/uibase/app/docshini.cxx:372:5
> #8 in SwDocShell::~SwDocShell() at sw/source/uibase/app/docshini.cxx:362:1
> #9 in SwDocShell::~SwDocShell() at sw/source/uibase/app/docshini.cxx:362:1
> #10 in SvRefBase::ReleaseRef() at include/tools/ref.hxx:163:29
> #11 in tools::SvRef<SfxObjectShell>::~SvRef() at include/tools/ref.hxx:56:36
> #12 in IMPL_SfxBaseModel_DataContainer::~IMPL_SfxBaseModel_DataContainer() at sfx2/source/doc/sfxbasemodel.cxx:245:5
> #13 in void std::destroy_at<IMPL_SfxBaseModel_DataContainer>(IMPL_SfxBaseModel_DataContainer*) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/12.0.0/../../../../include/c++/12.0.0/bits/stl_construct.h:88:15
> #14 in void std::allocator_traits<std::allocator<IMPL_SfxBaseModel_DataContainer> >::destroy<IMPL_SfxBaseModel_DataContainer>(std::allocator<IMPL_SfxBaseModel_DataContainer>&, IMPL_SfxBaseModel_DataContainer*) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/12.0.0/../../../../include/c++/12.0.0/bits/alloc_traits.h:537:4
> #15 in std::_Sp_counted_ptr_inplace<IMPL_SfxBaseModel_DataContainer, std::allocator<IMPL_SfxBaseModel_DataContainer>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/12.0.0/../../../../include/c++/12.0.0/bits/shared_ptr_base.h:528:2
> #16 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/12.0.0/../../../../include/c++/12.0.0/bits/shared_ptr_base.h:168:6
> #17 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/12.0.0/../../../../include/c++/12.0.0/bits/shared_ptr_base.h:705:11
> #18 in std::__shared_ptr<IMPL_SfxBaseModel_DataContainer, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/12.0.0/../../../../include/c++/12.0.0/bits/shared_ptr_base.h:1154:31
> #19 in std::__shared_ptr<IMPL_SfxBaseModel_DataContainer, (__gnu_cxx::_Lock_policy)2>::reset() at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/12.0.0/../../../../include/c++/12.0.0/bits/shared_ptr_base.h:1272:9
>
> previously allocated by thread T10 here:
> #0 in operator new(unsigned long) at ~/github.com/llvm/llvm-project/compiler-rt/lib/asan/asan_new_delete.cpp:95:3
> #1 in SwDoc::MakeFlyFrameFormat(rtl::OUString const&, SwFrameFormat*) at sw/source/core/doc/docfmt.cxx:756:33
> #2 in SwDoc::MakeFlySection_(SwPosition const&, SwContentNode const&, RndStdIds, SfxItemSet const*, SwFrameFormat*) at sw/source/core/doc/doclay.cxx:171:33
> #3 in SwDoc::MakeFlySection(RndStdIds, SwPosition const*, SfxItemSet const*, SwFrameFormat*, bool) at sw/source/core/doc/doclay.cxx:337:19
> #4 in SwXFrame::attachToRange(com::sun::star::uno::Reference<com::sun::star::text::XTextRange> const&, SwPaM const*) at sw/source/core/unocore/unoframe.cxx:2821:29
> #5 in SwXFrame::attach(com::sun::star::uno::Reference<com::sun::star::text::XTextRange> const&) at sw/source/core/unocore/unoframe.cxx:3115:9
> #6 in SwXTextFrame::attach(com::sun::star::uno::Reference<com::sun::star::text::XTextRange> const&) at sw/source/core/unocore/unoframe.cxx:3346:15
> #7 in SwXText::insertTextContent(com::sun::star::uno::Reference<com::sun::star::text::XTextRange> const&, com::sun::star::uno::Reference<com::sun::star::text::XTextContent> const&, unsigned char) at sw/source/core/unocore/unotext.cxx:615:15
> #8 in SwXText::insertTextContentWithProperties(com::sun::star::uno::Reference<com::sun::star::text::XTextContent> const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::text::XTextRange> const&) at sw/source/core/unocore/unotext.cxx:1472:5
> #9 in non-virtual thunk to SwXText::insertTextContentWithProperties(com::sun::star::uno::Reference<com::sun::star::text::XTextContent> const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::text::XTextRange> const&) at sw/source/core/unocore/unotext.cxx
> #10 in SwTextBoxHelper::create(SwFrameFormat*, SdrObject*, bool) at sw/source/core/doc/textboxhelper.cxx:100:29
> #11 in SwXShape::setPropertyValue(rtl::OUString const&, com::sun::star::uno::Any const&) at sw/source/core/unocore/unodraw.cxx:1165:25
> #12 in SdXMLShapeContext::SetStyle(bool) at xmloff/source/draw/ximpshap.cxx:701:27
> #13 in SdXMLCustomShapeContext::startFastElement(int, com::sun::star::uno::Reference<com::sun::star::xml::sax::XFastAttributeList> const&) at xmloff/source/draw/ximpshap.cxx:3545:5
> #14 in SvXMLImport::startFastElement(int, com::sun::star::uno::Reference<com::sun::star::xml::sax::XFastAttributeList> const&) at xmloff/source/core/xmlimp.cxx:805:15
> #15 in (anonymous namespace)::Entity::startElement((anonymous namespace)::Event const*) at sax/source/fastparser/fastparser.cxx:468:27
> #16 in sax_fastparser::FastSaxParserImpl::callbackStartElement(unsigned char const*, unsigned char const*, unsigned char const*, int, unsigned char const**, int, unsigned char const**) at sax/source/fastparser/fastparser.cxx:1304:21
> #17 in (anonymous namespace)::call_callbackStartElement(void*, unsigned char const*, unsigned char const*, unsigned char const*, int, unsigned char const**, int, int, unsigned char const**) at sax/source/fastparser/fastparser.cxx:331:18
> #18 in xmlParseStartTag2 at workdir/UnpackedTarball/libxml2/parser.c:9658:6
> #19 in xmlParseTryOrFinish at workdir/UnpackedTarball/libxml2/parser.c:11453:14
Change-Id: I752190e05fc3c282b75021724527f623f56ee6a6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125977
Tested-by: Jenkins
Tested-by: René Engelhard <rene@debian.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
(cherry picked from commit 4fb7967fb2e67717f79eb87519c1444a82350a83)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125906
|
|
Change-Id: Ic358f008e09718b6f726a55edfe3a3f78bba2942
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125728
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
|
|
At last, a case where copying a mark fails for legitimate reasons.
(regression from 4bf04dea9afb30a9395e80b07a81d1908937ee8b)
Change-Id: I7a318e03c0b0d30e204eadb5012f190edbbba486
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125767
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
|
|
Change-Id: Ibc2eb80d7cc0cfc22c7fea0dc7ebe495ae0927c6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125765
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
|
|
Grouping/ungrouping nested groups works now.
Manual test:
1. Insert Shape.
2. Right-click on selected shape, Add Text Box (and some text).
3. Insert a new shape.
4. Select and group the two shapes.
3. Insert a third shape.
4. Select and group the shape and the previously grouped shapes.
The text box remains in the nested shape group.
Details:
1) tdf#144271 memory leak of SwTextBoxHelper, by replacing the
textbox structure vector with std::unordered map, and rethinking
of the ownership of the objects. If a SwFrameFormat dies, and that
is a FLYFRMFMT, it will be deleted from the textbox node and the
FrameFormat table in the doc too, and the drawing will be stay as
it was before. If the dying format is a drawing, all the textboxes,
and the node will be deleted.
2) Introducing the new UNO property TextBoxContent, which is needed
for writerfilter/xmloff later to set a new textbox for the shape
via UNO.
3) Missing parameters are present now for syncing the textbox
parameters.
4) Introducing a new function namely the handleGroupTextBox() to
do the tasks simply with all textboxes in a group shape.
This can handle nested groups as well (group in a group).
Known issues: now copy of nested group objects is implemented
but not enabled, because it causes an assert.
Change-Id: I931886eda01c7a3db93098de10f5e5f48f2f217b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124657
Tested-by: László Németh <nemeth@numbertext.org>
Reviewed-by: László Németh <nemeth@numbertext.org>
|
|
Recognize moved text by accessing to the hidden redline content
pContentSect during ODT import (in the case of Delete redlines)
and ChangesInMargin mode (Delete or Insert redlines depending on
Deletion in Margin or Insertion in Margin modes).
Fix Undo and redline stack handling by moving IsMoved bit to
SwRedlineData from SwRangeRedline.
Note: .fodt format is applicable for the unit test document,
because it's not affected by the problem.
Change-Id: Ifd4f993520bec4b845d978a844c465509ea87b50
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125552
Tested-by: László Németh <nemeth@numbertext.org>
Reviewed-by: László Németh <nemeth@numbertext.org>
|
|
Seems like some unusual corner-case around HTML export.
sw::DocumentContentOperationsManager::CopyImplImpl(SwPaM&, SwPosition&, bool, SwPaM*, bool) const
/sw/source/core/doc/DocumentContentOperationsManager.cxx:5068
sw::DocumentContentOperationsManager::CopyImpl(SwPaM&, SwPosition&, bool, SwPaM*, bool) const
/sw/source/core/doc/DocumentContentOperationsManager.cxx:4609
sw::DocumentContentOperationsManager::CopyRange(SwPaM&, SwPosition&, bool, bool, bool) const
/sw/source/core/doc/DocumentContentOperationsManager.cxx:1936
SwEditShell::CopySelToDoc(SwDoc*)
/sw/inc/pam.hxx:193 (discriminator 2)
SwFEShell::Copy(SwDoc*, rtl::OUString const*)
/sw/source/core/frmedt/fecopy.cxx:224
(anonymous namespace)::lclOverWriteDoc(SwWrtShell&, SwDoc&)
/sw/source/uibase/dochdl/swdtflvr.cxx:413
SwTransferable::GetData(com::sun::star::datatransfer::DataFlavor const&, rtl::OUString const&)
/include/sfx2/objsh.hxx:866
TransferableHelper::getTransferData2(com::sun::star::datatransfer::DataFlavor const&, rtl::OUString const&)
/include/com/sun/star/uno/Type.h:121
TransferableHelper::getTransferData(com::sun::star::datatransfer::DataFlavor const&)
/include/rtl/ustring.hxx:438
getFromTransferrable.isra.0
/include/com/sun/star/uno/Any.hxx:151
encodeImageAsHTML
/desktop/source/lib/init.cxx:4382
doc_getTextSelection
Change-Id: I1af52d827ebdc9bbc5278f56547d1b3fd1b87e7c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125454
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
Change-Id: Ie98606607b2ce262e4eed76bb8cd86fbfe846f76
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125506
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
Add IsMoved bit to SwRangeRedline, and keep it in both
parts of a split Delete/Insert redline. Set this bit
during DOCX import, fixing incomplete import of
moveFrom/moveTo elements.
Details:
- Search text moving only at redline Insert() and AppendRedline()
instead in the layout code (which was much slower, because
triggered by also mouse hovering):
- detect text moving in Hide Changes mode, too;
- Insertion inside or directly after tracked text moving keeps
"moved text" layout of the original moved text parts (before
and after the insertion).
- at detection of text moving, invalidate (update) layout of the
redline pair, too.
- fix DOCX import: extend makeRedline() with property RedlineMoved
to keep all moveFrom/moveTo stored in DOCX instead of
losing them (joining them with normal redlines) in the case
of missing Delete/Insert pair (see unit test document);
Follow-up to commit ec577f566fa3e6d2666069180f8ec8474054aea9
"tdf#145233 sw track changes: show moved text in green color",
commit bcdebc832b272662d28035007a4796e42d1305ae
"tdf#104797 DOCX change tracking: handle moveFrom and moveTo"
and commit d32d9a2b3c5e3963f4a18f6c7bbf50fab2e9b2be
"tdf#123460 DOCX track changes: moveFrom completely".
Change-Id: Iaca80e5e326a172bc7ba5fec64b63668b9378e2d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125317
Tested-by: László Németh <nemeth@numbertext.org>
Reviewed-by: László Németh <nemeth@numbertext.org>
|
|
35d248cab1f0d4800f72abb5cb6afb56f40d9083 forgot to fix one place where
control characters were in a presumed XML declaration.
Another place looks missing where comments are handled, but it's not
clear if these can be passed on to Writer.
Revert the previous fix from commit
b3325ef8cdfc2c82eec34e747106f75a9fccb7e4.
Change-Id: I11ad13de9122533626e512ce0384051e3e5bd97f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125306
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
|
|
Change-Id: I78db3001d602ec1a0847785b3c127b9d345f5af7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125173
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
This is a problem since commit e7760d428bc82ccfcae14f1907b78f9f1013b88c
(Fix tdf#87500 - Freeze with English/Japanese mixture undo.,
2015-09-08), that started not grouping IME-edited text completely.
This means that in case you go via SwEditWin::Command() instead of
SwEditWin::KeyInput() to type a 4 characters word, then it'll create 4
undo actions.
Fix the problem by tracking who was the last caller of
sw::DocumentContentOperationsManager::InsertString(), so we can only
disable grouping switching between IME and non-IME, and we can have
grouping for a series of IME input.
Change-Id: I31bd02db4fe653ab63e41a77c75b8bebfc749ff1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124766
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
instead of XInterface, to make it obvious what the reality of the
requirement is
Change-Id: Icdd4113f2a0ece930305f4d8ba010b81d24f43c3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124802
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ie9df072747311791ac04699cb8c3101a03da7431
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124801
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
warn:sw.core:24584:24584:sw/source/core/attr/calbck.cxx:156: lost a client of type: 9SwTOXMark at 0x57728d0 still registered on type: 8SwModify at 0x55a9c70.
soffice.bin: sw/source/core/attr/calbck.cxx:159: virtual SwModify::~SwModify(): Assertion `!hasListenersOnDeath' failed.
Change-Id: I118426e802e7f7346e579b807a4d8c85252ffeb3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124757
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
|
|
* Hairline (0.05pt)
* Very thin (0.5pt)
* Thin (0.75pt)
* Medium (1.5pt)
* Thick (2.25pt)
* Extra thick (4.5pt)
This unifies the default border line widths throughout the program.
Users can still set any line width they want by chosing "Custom" in the "Border" tabpage.
Also, existing documents won't be changed. The new defaults are just for newly added borders.
Change-Id: I7af85dc189a688a749812824508c33c7814b50f5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122683
Tested-by: Jenkins
Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
|
|
which was changed to tracked insertion.
Follow-up to commit 4c982dbafdac900e233d7b68d95c9c99244defc1
"tdf#145225 sw track changes: fix bad insert at moving".
Change-Id: If3d70da71188e95b5aeea9b72e7c9de22d7c7150
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124645
Tested-by: László Németh <nemeth@numbertext.org>
Reviewed-by: László Németh <nemeth@numbertext.org>
|
|
Change-Id: Ie9530262e4addec01091cc1147e68be5b5a782f0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124398
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
... as it is around since the dawn of C++ and should be stable --
certainly more stable and less errorprone that manual typetagging.
Change-Id: I5dfe2ce40c2334dc8fe60705d358779fa4bf1586
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124131
Tested-by: Jenkins
Reviewed-by: Bjoern Michaelsen <bjoern.michaelsen@libreoffice.org>
|
|
Change-Id: I70243dad4cd62ab1f601d010e0bcf441831ec556
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124130
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
Tested-by: Jenkins
|
|
Moving up a list item over a tracked paragraph insertion
changed non-tracked text to tracked insertion.
Manual test:
- Create a 3-element list;
- switch on Record Changes and Show Changes;
- at the end of the list item 2, press Enter to insert a
new list item, and type some text:
Item 1
Item 2[
New item]
Item 3
where parenthesis shows the boundaries of the tracked
insertion;
- move up the last list item over list item 2 (the unmodified
paragraph text with a tracked paragraph insertion at the
end).
Paragraph text before the tracked paragraph insertion
changed to tracked insertion joining its tracked insertion
with the moved list item, resulting only 2 tracked changes:
Item 1
[Item 3
Item 2
New item]
[Item 3]
instead of the requested 3 changes:
Item 1
[Item 3]
Item 2[
New item]
[Item 3]
Change-Id: I4716b2d244b57cf86d7d14d972452191549f5fea
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124144
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth@numbertext.org>
|
|
Change-Id: Id95cab7b70a9f97dadadb8d0cff64674ec3711b7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124119
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|