summaryrefslogtreecommitdiff
path: root/sw
AgeCommit message (Collapse)AuthorFilesLines
2020-02-05Related: tdf#130143 freeze/thaw around bulk insertCaolán McNamara1-0/+2
Change-Id: Iedb1229b56b5e7f1af1779b830cf324bcc8735e4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87864 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de>
2020-02-03Unit test for stable at-page anchored fly positionJan-Marek Glogowski2-0/+43
This is the unit test for commit 5cee586a97a11c23dd252accc42099bd5e9b4187 ("sw: fix moving of at-page anchored flys to different page"). Originally the error was just triggered by toggling "View -> Field Names". Luckily it's also triggered by adding some text to page four, so no need for some UI test. Change-Id: I3a63b50dd898788607c3d24a848d8f43ae966377 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87776 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit 5fed8bb5f6f65963fed27f96de3be14dff830d38) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87847 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2020-01-31Adapt CPPUNIT_ASSERT to C++20 deleted ostream << for sal_Unicode (aka char16_t)Stephan Bergmann6-2/+6
<http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1423r3.html> "char8_t backward compatibility remediation", as implemented now by <https://gcc.gnu.org/ git/?p=gcc.git;a=commit;h=0c5b35933e5b150df0ab487efb2f11ef5685f713> "libstdc++: P1423R3 char8_t remediation (2/4)" for -std=c++2a, deletes operator << overloads that would print an integer rather than a (presumably expected) character. But for simplicity (and to avoid issues with non-printing characters), keep printing an integer here. Change-Id: I751b99ee32d418eb488131ffa130d6f7d6d38dc7 Reviewed-on: https://gerrit.libreoffice.org/84348 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com> (cherry picked from commit 5d8f0fad50f90195a11873c70ddab4644f5839ea) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87760 Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-01-30tdf#129237: Add unittestXisco Fauli2-0/+43
Change-Id: Ica8942e6f165afad1ed40457ec86bd20713a1a59 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87744 Tested-by: Jenkins Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org> (cherry picked from commit 029d1e92945eb6ac8cd31911f35bed92a4201897) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87747
2020-01-30tdf#130286: jsdialogs: fix CID 1455691 & CID 1455690Szymon Kłos1-8/+11
Change-Id: Idbb3e70c1a09be7dd7c43747250f3a6368251cd9 Reviewed-on: https://gerrit.libreoffice.org/82662 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> (cherry picked from commit 77cc0e929ee331af6b97b65e9b6ec5400ef05cd4) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87733 Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-01-30Adapt to C++20 deleted ostream << for sal_Unicode (aka char16_t)Stephan Bergmann1-1/+1
<http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1423r3.html> "char8_t backward compatibility remediation", as implemented now by <https://gcc.gnu.org/ git/?p=gcc.git;a=commit;h=0c5b35933e5b150df0ab487efb2f11ef5685f713> "libstdc++: P1423R3 char8_t remediation (2/4)" for -std=c++2a, deletes operator << overloads that would print an integer rather than a (presumably expected) character. But in these cases printing an integer is as expected, so add explicit casts. Change-Id: I7c2f1afaa2982b284aef8af183b71466c37142c2 Reviewed-on: https://gerrit.libreoffice.org/84339 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com> (cherry picked from commit e8cb5f2e11838060f85e7940540b5f7096d9eeb7) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87745 Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-01-30tdf#129659 DOCX check global footnote contextJan-Marek Glogowski2-0/+5
Since tdf#121441 we parse custom footnotes to get at least the DOCX footnote text, even if we can't represent the formating. This might push additional contexts to the parser stack. Therefore it's now not sufficient to check the current context for a footnote, but one has to check the global parser for a footnote context. The actual bug is the unsupported footnote page break, which was not correctly ignored and added a paragraph context to the stack, resulting in the async substream input and output stack size. Change-Id: I143254e7df37a619cb4efb542b58d3eff3afffa7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87114 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> (cherry picked from commit b87af9775167002d36a3bc16cb308ea7895d7ea0) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87742 Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2020-01-29tdf#129625 Gray out content types with no contentJim Raykowski1-0/+5
This patch is for Writer Navigator only. Change-Id: I80724a3e24fd38d7b5537e1c923866a914b45898 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87668 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> (cherry picked from commit 000ba228db56c28b6e2a42bf6adefe6ca6cfdffb) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87669 Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2020-01-29tdf#130179 sw comments on frames: limit insert UI for at-char and ...Miklos Vajna5-1/+167
... as-char anchor types SwWrtShell::InsertPostIt() only sets the comment anchor for those types, and we would crash without an anchor. (cherry picked from commit d05a65bec5dc498f66f9331189124d539bc0d505) Conflicts: sw/Module_sw.mk Change-Id: I7d2f5d3d8f8e11c46db060c17587e97ecb786ad2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87586 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de>
2020-01-28tdf#130214: workaround invalid state resulting from error on importMike Kaganski2-0/+5
Obviously the real error is somewhere else, which results in tdf#126435, and produces unexpected state with missing text append context on stack. This is just a hack to avoid crash. Change-Id: I420ac3b74f5efb9688dc764ac2ad0dcc974ba0e1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87595 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit eca00082c78fddf79f247057227404738be8806c) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87634 Tested-by: Jenkins Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
2020-01-28fix bug in testTdf128304Noel Grandin1-3/+3
Assuming the test actually meant to use these vars Comes from commit b203b9c83d0000c8465dcd92fb6b029a2f28c724 Date: Fri Dec 13 07:23:35 2019 +0800 tdf#128304 export TB_RL writing mode as eaVirt Change-Id: I0649f189019ea764e7ed554dac43932b717eed2c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87535 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> (cherry picked from commit 44a520fe7ffd8bca45babdf325ec307c30c1a006) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87585 Reviewed-by: Michael Stahl <michael.stahl@cib.de>
2020-01-28tdf#103983 VML import: handle <v:textbox style="mso-fit-shape-to-text:t">Miklos Vajna1-2/+3
We used to always always set TextAutoGrowHeight to true, only do that when the matching VML attribute is detected, default to false. This helps the exporter, so it writes the correct markup on save of the bugdoc. Also adapt testGroupshapeChildRotation, which in practice tested the automatic height of the shape. The point of "auto" is that it changes as needed, hardcoding that value in a test is not a great idea. Rather test that the height is no longer automatic (there is no explicit markup in the file, and the default is false). (cherry picked from commit b92293b3943423324064a8513c2e114d18817179) Conflicts: sw/qa/extras/ooxmlimport/ooxmlimport.cxx Change-Id: Ie39408b7da53f4923a2ade503e520c704a86bcf4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87120 Tested-by: Jenkins Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
2020-01-28tdf#130155 Writer Navigator crash fix: Check entry to expand has childrenJim Raykowski1-1/+5
Fixes crash/freeze when an entry without children is sent is to SwContentTree::Expand. It forwards to SvTreeListBox::Expand deal with it. Change-Id: Icd3cd1b2d0a949e01a3e02a6fa4cdc08610c8ffb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87307 Tested-by: Jenkins Reviewed-by: Jim Raykowski <raykowj@gmail.com> (cherry picked from commit a46e768810e82abaf98e5cef02c697c718877974) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87504 Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org> Tested-by: Xisco Faulí <xiscofauli@libreoffice.org>
2020-01-24tdf#128782: Add UItestXisco Fauli2-0/+45
Change-Id: I389d05fa9b1e79af2c01abd920fb4454b96543fb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87282 Tested-by: Jenkins Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org> (cherry picked from commit e13f74ba563e1c82a1de587818f6090077c6f30f) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87303
2020-01-23sw_redlinehide: fix SwScriptInfo hidden textMichael Stahl1-0/+1
A missing update of nOffset in SwScriptInfo::InitScriptInfo(); it must be updated for every extent but it's not for the last one in a node. test case: ab cd Delete "bc", hide "d", but "a" disappears. (regression from 0e26d48ad7f18deac8447a306215f79d5c62be27) Change-Id: I99fb88409e184a61866f908722b4430a53914153 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87201 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit 53cd5d1f50d3da4efe0938aa340f6a57a0b8501d) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87246 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2020-01-23tdf#129382: sw: assign names to shape object stylesVasily Melenchuk2-2/+2
Empty style names for drawing object will cause problems with udo/redo which right now refers style names instead of style pointers. Change-Id: If2266f1db04c624dbfdd716b5599d5f6cbb5371e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86520 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> (cherry picked from commit db8fdf20fbbb22e0510f0500140bbf7a3b2642f7) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87214 Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
2020-01-22tdf#128782: sw: assign name to draw objectVasily Melenchuk1-1/+5
SwXDrawPage is inserting frame styles without name. This is confusing undo/redo code which is operating styles by names. Change-Id: Ibcda01fbd3ec88e9cdbde446c3f18c7ad6b0cbc8 Reviewed-on: https://gerrit.libreoffice.org/83415 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> (cherry picked from commit c2d689790c332ffd2f0d73de6aae53f26f0fbe53) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87206 Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
2020-01-21tdf#129582 sw: fix copying of flys in header/footer in DOCX/RTF importMichael Stahl6-32/+33
The problem is that the exception for writerfilter in IsDestroyFrameAnchoredAtChar() and IsSelectFrameAnchoredAtPara() is wrong in the case when the header/footer content is copied via SwXText::copyText(); that is, previously the situation was that writerfilter relied on Delete not deleting such flys (for RemoveLastParagraph) but Copy copying them. (regression from 28b77c89dfcafae82cf2a6d85731b643ff9290e5 and e75dd1fc992f168f24d66595265a978071cdd277) So restrict the writerfilter hack to delete; this causes a problem with ooxmlexport9 test testTdf100075: it has 2 flys anchored at the same paragraph; writerfilter will insert the content into the body and then convert to fly; when the 2nd one is converted it will copy the 1st fly and anchor it inside the 2nd fly but then unotext.cxx:1719 will reset its anchor to inside the body... Prevent this unwanted copy by relying on the new parameter bCopyText that was introduced in 04b2310aaa094794ceedaa1bb6ff1823a2d29d3e, but change things a bit so that the case that pass in the extra flag isn't the copyText() one that wants the *normal* selection semantics in writerfilter import, but the 2 known places that want the *exceptional* selection semantics in writerfilter import (hopefully there aren't more). This is not ideal and the various bool parameters to CopyRange() plus mbCopyIsMove plus mbIsRedlineMove should probably be consolidated into some flags enum passed to CopyRange(). Change-Id: I638c7fa7ad0b4ec149aa6a1485e32f2c8e29ff5a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87072 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit 81ec0039b2085faab49380c7a56af0c562d4c9e4) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87095 Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-01-21DOCX import: fix lost objects anchored to an empty linked headerMiklos Vajna3-2/+18
This is really similar to commit 04b2310aaa094794ceedaa1bb6ff1823a2d29d3e (DOCX import: fix lost objects anchored to the single para of a linked header, 2020-01-10), except here the header is not just a single-paragraph one, but has no text portions. Update text-copy.docx to have a header which is not only a single paragraph, but also has no character content. This keeps testing the original case, but now also tests the more strict case (single paragraph -> single empty paragraph). Change-Id: I11bb062e77af1a83f717225ea5b4daef39e5a672 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86552 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins (cherry picked from commit c12358166a9bd88fe10feabca45a6ad3f65dff8e) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87123 Reviewed-by: Michael Stahl <michael.stahl@cib.de>
2020-01-21DOCX import: fix lost objects anchored to the single para of a linked headerMiklos Vajna25-46/+97
Regression from commit 08f13ab85b5c65b5dc8adfa15918fb3e426fcc3c (tdf#112202 writerfilter,sw: fix loss of headers, 2019-12-16), the problem is that on one hand, copyText() is meant to copy a complete XText (header, table cell, footnote, etc), OTOH the internal API use used only copies at-para anchored objects for complete text nodes, so a one-paragraph header will loose its anchored objects when a linked header is copied. Introduce a new "CopyText" flag that provides the expected copyText() behavior and use that when the copyText() UNO API is invoked, but leave the selection behavior unchanged. Perform the inclusive check in IsSelectFrameAnchoredAtPara(), opt in for that from SwXText::copyText(), the rest is just passing the flag around. Change-Id: Id727f7ca4f6121a7050340359716a52ecb4886f2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86529 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins (cherry picked from commit 04b2310aaa094794ceedaa1bb6ff1823a2d29d3e) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87122 Reviewed-by: Michael Stahl <michael.stahl@cib.de>
2020-01-20sw: fix assert in ToX update on mw00_table_of_contents_templates.docMichael Stahl1-3/+1
... exported to RTF and re-imported: soffice.bin: sw/source/core/txtnode/thints.cxx:1295: bool SwTextNode::InsertHint(SwTextAttr*, SetAttrMode): Assertion `!pAttr->GetEnd() || (*pAttr->GetEnd() <= Len())' failed. The problem is that the text of a HandledTextToken is all whitespace and a hint from 0 to 1 is inserted because mNewPositions.back() is erroneously 1, no idea why it was doing that. (regression from e5345f62bf525b6258736f1ce11a61b5e638e0ff) Change-Id: I6ec290abe50c0f65a3244f0f0bb07e19741e878b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86996 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit ae56432d7e34529cd5ad391f074737d3f5adf137) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87057 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2020-01-20tdf#129452 DOCX import: fix bottom border of merged columnSzabolcs Toth2-0/+13
Bottom border of a vertically merged column of a table was missing if the inside borders were turned off and the merge included the last cell of the column. This happened because the first cell (topmost) in a set of vertically merged cells determines the borders of the new merged cell, and the turned off inside borders were at the bottom in this case. Change-Id: I3d3defad18a1315117a554a36ad599eb46daffe9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/85988 Reviewed-by: László Németh <nemeth@numbertext.org> Tested-by: László Németh <nemeth@numbertext.org> (cherry picked from commit 0f4dd820ee433932d9d9237b676292d31c4ba913) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86430 Tested-by: Jenkins Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
2020-01-20tdf#129888 DOCX shape import: handle o:allowincellBakos Attila3-0/+28
(VML) and layoutInCell (DrawingML) attributes to fix regressions caused by commit 10f29d8bf05d44ca8bc11d34d1294ec17f8ac0f1 (tdf#87569 tdf#109411 DOCX import: fix shape anchor in tables). Position of shapes anchored to tables is calculated from the cell margin only if the previous attributes allow that. Change-Id: Ifcfcb7f4959aea522dd45dff00cefd1bb9f4edda Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86922 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org> Signed-off-by: xisco <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86980 Reviewed-by: Attila Bakos <bakos.attilakaroly@nisz.hu>
2020-01-17tdf#128304 export TB_RL writing mode as eaVirtMark Hung3-6/+25
and import eaVirt to TextWritingMode instead of TextPreRotateAngle (-90) degree of CustomShapeGeometry. CJK text in TB_RL writing mode are upright in Writer. It corresponds to eaVirt by its defintion. Change-Id: I2a8bc6676ad6af06b06e023adaa2f201a028d426 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86637 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Signed-off-by: xisco <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86960
2020-01-17tdf#129655 Sync TextWritingMode to frame direction.Mark Hung3-0/+16
Sync the text writing mode of a shape to the frame direction of the attached text box ( a text frame ). Change-Id: Ied9ff1a1d0f53d7ef78a83a086af0a2c1ca5eb36 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86638 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Signed-off-by: xisco <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86961
2020-01-17tdf#129924 critical fix: use SvxColorItem instead of SvxBrushItemSerge Krot1-3/+3
Change-Id: I09b1e9fe53315974864c8d6947c7cb861f069a68 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86953 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com> (cherry picked from commit c5747c64d3134ec6d8b6ab6fdc938639157fca09) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86978 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2020-01-17tdf#129924 docx import: set background colorSerge Krot1-0/+16
Change-Id: If586a7a11e375c1592253630af87772bca40b52e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86542 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> (cherry picked from commit 9476dfe7d1b86b367966e7dedf67e11936c8d9d7) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86895 Reviewed-by: Serge Krot (CIB) <Serge.Krot@cib.de>
2020-01-17tdf#129839: pass initialized shared_ptr to SwDoc::GetBoxAttrMike Kaganski2-1/+25
Regression after commit 1e2682235cded9a7cd90e55f0bfc60a1285e9a46 Change-Id: I40acc9e0ffdd292283381366a31eb6647b80324f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86291 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit 4056b70e6339102374898fff26f099da455475b1) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86329 Reviewed-by: Michael Stahl <michael.stahl@cib.de>
2020-01-17tdf#126795 docx export: do not output tab stops twiceSerge Krot1-0/+7
Change-Id: I70235df7fb73133f413863ee5eb7c76905a60248 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86767 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> (cherry picked from commit 264d27c94d7286a407b05a32f4097ac9d543e1a3) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86896 Reviewed-by: Serge Krot (CIB) <Serge.Krot@cib.de>
2020-01-15tdf#129574 sw: fix RTF export of table of contentsMichael Stahl3-0/+22
The problem is that the hyperlink that starts at the start of the first paragraph of the ToX content is written to RTF before the TOC field itself, so the hyperlink contains the entire ToX: {{\field{\*\fldinst HYPERLINK "#__RefHeading___Toc250984071" }{\fldrslt {\rtlch\langfe1024 \ltrch\lang1024\loch {\field{\*\fldinst { TOC \\o "1-3" \\h \\z }}{\fldrslt {1.India\tab 1}}}} This is because the HYPERLINK is written into m_aRun but the TOC into m_aRunText. Interestingly StartRun() asserts that m_aRunText should be empty, so we don't try to change StartURL() to write the HYPERLINK into m_aRunText. The only function that moves text from m_aRunText to m_aRun is EndRun(), so wrap the TOC field in StartRun()/EndRun(). This breaks the export of the ToX to DOCX because a mysterious SDT is no longer written around the field but only the field result, so only do this for RTF. Change-Id: I22e45c4a9c9ce6edb2b9114b4a29b2a373ec3284 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86860 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit 05d833a26208404e5f2b3d61298a57c9bcc7c1fe) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86872 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2020-01-13tdf#128207: DOCX import: fix chart positioningBakos Attila2-0/+8
Embedded graphic objects had got 0 values for vertical and horizontal positioning before, resulting overlapping, hidden charts, but now they are positioned according to the values in the document. Change-Id: Ia5403ac65ff7192d61072e8a9d8a7f80c7178b9b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86521 Reviewed-by: László Németh <nemeth@numbertext.org> Tested-by: László Németh <nemeth@numbertext.org> (cherry picked from commit d9c535ead688e9f156dbcf43948df08a69e218be) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86536 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-01-10tdf#115026: Add uitestXisco Fauli1-0/+38
Change-Id: Iaac2a1065c0c1c28e56db8a121cb28453e27d529 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86497 Tested-by: Jenkins Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org> (cherry picked from commit 43d8dc34d74832e928c2cc215e9bf512f4edf3b3) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86504
2020-01-09tdf#115026 sw tableAutoFormat: don't clear break/keepJustin Luth1-3/+5
If a table style HAS defined a page-break or keep-with-next-paragraph, then apply it when applying the style. But if the format just has a default non-break/non-keep attribute, then don't apply that. Kinda seems artificial/arbitrary, but it looks difficult to change the break/keep property to be an optional component. If it was optional, then it would be fine to take a defined non-break and apply it, but since it is a mandatory value, just ignore the default state. Yes, this means that applying one style can introduce a break/keep, but applying a different style cannot remove it. None of the build-in styles has either of these properties set. Since there is no way to identify direct formatting, assuming the user intentionally set these is the better policy by far... I didn't do the same thing with shadow/collapsing borders etc. Those seem more like table style properties than these two flow items. I still couldn't get the unit test to work. I got access to the created document by removing EnableKillingFile from swmodelbase, and from that I can see that the autoformat is not affecting the table with RestoreTableProperties. I assume the Break is overwritten during the table creation process because I can see the background being applied in that case, but still no Break. Change-Id: Ia2a4ff8a19158b1ea5d74ec3a21c688c53d66724 Reviewed-on: https://gerrit.libreoffice.org/83879 Tested-by: Jenkins Reviewed-by: Justin Luth <justin_luth@sil.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.com> (cherry picked from commit 43f983d08d66520536980339f33ef44d5eec35f6) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/85838 Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
2020-01-09tdf#128782: sw: set name for draw frame style for text boxVasily Melenchuk1-0/+1
Since new undo/redo code operates style names instead of pointers, it is important to have all formats with name. Change-Id: Ib91cd13b8a324ae674e9ace9bb5f17e679bd2dab Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86162 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> (cherry picked from commit c79dcf98d662e76b1290f8d43c927d1031e94729) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86399 Reviewed-by: Michael Stahl <michael.stahl@cib.de> Tested-by: Jenkins
2020-01-09tdf#129353, tdf#129402: fix node creation on index importMike Kaganski5-10/+66
ToC, bibliography, and index sections import code changed to closely follow what Word does, make sure that pre-rendered entries don't get imported as standalone paragraphs outside of the index sections, and paragraph count is accurate (no missing or added paragraphs as much as possible). In Word, an index may start and end in the middle of a paragraph: <w:p> <w:r> <w:t>Some text before index</w:t> </w:r> <w:r> <w:fldChar w:fldCharType="begin"/> </w:r> <w:r> <w:instrText> TOC ...</w:instrText> </w:r> <w:r> <w:fldChar w:fldCharType="separate"/> </w:r> <w:r> <w:t>First pre-rendered index entry</w:t> </w:r> </w:p> ... <w:p> <w:r> <w:t>Last pre-rendered index entry</w:t> </w:r> <w:r> <w:fldChar w:fldCharType="end"/> </w:r> <w:r> <w:t>Some text after index</w:t> </w:r> </w:p> However, normally it looks like either no runs precedig index, or no runs of pre-rendered contents will be present. When no Std elements are used, the typical situation is that there's a normal paragraph (possibly with some user text), which ends with index start marker, without any pre-rendered contents in the same paragraph; and all pre- rendered contents goes in following paragraphs. Such index normally ends with index end marker in the *first* run of a paragraph, which then might have normal text runs. When Stds are used, then no leading/trailing out-of-index runs in paragraphs with marks are usually present; and in this case, when paragraphs with index marks don't contain pre-rendered entries, they still are treated as part of the index. In Writer, indexes are node sections (and so cannot be inline with other paragraph contents). When there was some paragraph content already before the start-of-index mark, the paragraph is assumed to end before the index; in this case, when current <w:p> element ends, importer decides if a separate starting paragraph is needed or not, depending on if there was some runs after the mark. When there was no text runs before the starting mark, then the paragraph is treated as leading paragraph of the index. This allows to not miss empty paragraphs before index; and not have two paragraphs where there was one in Word. Only in cases when user had manually typed text both in and outside of the index in the same paragraph in Word, we would have the paragraph split into two in Writer. For end marks, the behaviour depends on whether it's inside Std. When inside, the ending paragraph starting with index end mark is considered part of the index. For out-of-Std case, it's considered normal paragraph (and measures are taken to make sure it's not dropped even if empty, because sometimes such paragraphs don't have other content, and have section settings, which is usually treated by Writer as "drop this paragraph" sign). A special problem is multi-column index. It's wrapped into a continuous section by Word; and in Writer, we also wrap it into a section. It would be possibly useful to detect somehow if this section is part of index definition, and in this case, drop the section and put its properties into the Writer's index section. That would avoid an explicit section in the imported document. This is TODO, for someone who figures how to detect reliably if the section belongs to index definition. See comment in DomainMapper_Impl::appendTextSectionAfter. By the way, current export code is wrong, producing an index that is single-column in Word; this change doesn't touch that. Several existing tests needed to be fixed, which used to test wrong results. Reviewed-on: https://gerrit.libreoffice.org/85089 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit 5cdb14345842c07eb1a466897753da910e9488f8) Change-Id: I9597c8ab13f31ded9abcc24054d3478d3e3a3b40 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/85289 Tested-by: Jenkins Reviewed-by: Andras Timar <andras.timar@collabora.com>
2020-01-08tdf#123262 writerfilter: completely ignore footnote separatorsJustin Luth2-0/+18
... except for processing enough to observe the separator exists. For each footnote reference, the entire footnote.xml file is parsed every time. The text in the "separator" footnote was being added to every footnote. The normal case where this is just a single paragraph was already handled, but this patch generalizes everything to handle cases of actual text or multiple paragraphs. Not every footnote has a type, so we can't depend on that to turn ignoringText ON/OFF. Every footnote has an ID, but theoretically the ID could be processed before or after the type, and it has no idea which type it is. Finally, the skipped text has no idea how many times/paragaphs it needs to skip. So a three-way control was needed to handle on/used/off. As a safeguard, finishing the footnote.xml parse (PopFootOrEndnote) ensures that ignoring won't be left on in the unlikely case that the separator is the last footnote. Change-Id: Ia30ca8d3a36417a4691e3b2e1c978720be017030 Reviewed-on: https://gerrit.libreoffice.org/82172 Tested-by: Jenkins Reviewed-by: Justin Luth <justin_luth@sil.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.com> (cherry picked from commit acb9d901009d026cb48e6a8b94e6200f05110504) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/85734 Reviewed-by: Michael Stahl <michael.stahl@cib.de>
2020-01-08tdf#129450 DOCX import: fix bottom border of 1-row tablesSzabolcs Toth2-0/+12
Bottom border was missing in a 1-row table with disabled inside borders. This happened because LO applied the empty horizontal borders to the bottom border of the table. Change-Id: I40140bf63297189edad13088f98fc5f869969c2d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/85303 Reviewed-by: László Németh <nemeth@numbertext.org> Tested-by: László Németh <nemeth@numbertext.org> (cherry picked from commit 6b1bd2699b0bdad6dc42db741dea0717cf7c1d36) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86397 Tested-by: Jenkins Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
2020-01-08tdf#129513: drop incorrect and redundant erasure of paragraph sprmMike Kaganski2-0/+15
It was introduced in commit 2499397cb39330dabeb8b7b3e0d7eb6213a0d8f4 "avoid sending duplicated paragraph flags", and supposedly was meant to avoid having duplicating sprms in the collected properties, when new properties were pushed back at that time. Using specific sprm id was likely a mistake (nParam should have been used instead). Now the new sprm is added using RTFSprms::set with eOverwrite having default value of RTFOverwrite::YES, which takes care to avoid dupes, so the call to erase is redundant. This reverts commit 2499397cb39330dabeb8b7b3e0d7eb6213a0d8f4. Change-Id: Ied19f6feb41bd17ef317812d4d295ca0542a5843 Reviewed-on: https://gerrit.libreoffice.org/85602 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit 989043b0644354b92fd17e4194897c2eb0935031) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/85742 Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
2020-01-08tdf#129841: fix GetTextTableCursorPropertyMap cell background valuesMike Kaganski2-3/+38
... which were accidentally broken in 2003 in commit eba784710e92597282a2284b56dce3a45ac38776. Change-Id: I3dc96dff0a8935f927933bb3946528fb8ac9aed0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86315 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86330 Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
2020-01-08tdf#129442 DOCX import: fix right border of 1-column tablesSzabolcs Toth2-0/+11
Right border was missing in a 1-column table with disabled inside borders. This happened because LO applied the empty vertical borders to the right border of the table. Change-Id: Ib190689bf5059bfd7dbf07b07808cd761015f37e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/85301 Reviewed-by: László Németh <nemeth@numbertext.org> Tested-by: László Németh <nemeth@numbertext.org> (cherry picked from commit 8a2eb40abbd52d960dd21308157186be0ca9dd3d) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86261 Tested-by: Jenkins Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
2020-01-07tdf#129798: store SwWrtShell when it's availableMike Kaganski2-24/+35
GetActiveWrtShell may return nullptr when attaching a new component to current frame, e.g. destroying on print preview. OTOH SwWrtShell is passed to SwFieldDBPage::SetWrtShell on creation, so store it to own base class then. Possibly that would be enough, and we could remove all the checks in other methods - but I don't know the code well enough to be sure that SwFieldDlg::PageCreated and SwFieldEditDlg::CreatePage will always set SwWrtShell; to be on the safe side, I kept the checks where SwWrtShell is used, and stored it in those places if not yet stored. Regression after commit 39ba5e3bde93358af1b363da8f850bdc96806cfa. Change-Id: I21f3c8ef24764e98b1bc287db3c6485ce0b3ab48 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86253 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit 016c69c99e1ab26e6582ca8dea6fa1b4b9e5d109) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86260 Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-01-07tdf#128996 Chart: Fix disappeared vertical X axis labelsBalazs Varga2-0/+16
Regression from commit: 75ef0e41ea8a9096ac619356d2b837c5333b47e6 (tdf#125334 Chart: allow text break in bar chart axis labels) Change-Id: Ib935de74314b7dec489d94a4aa3c65072e18d9e0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86010 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org> Tested-by: László Németh <nemeth@numbertext.org> (cherry picked from commit d53de6b0bfff08dfbde4fe305e2a9b7a60255458) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86259 Reviewed-by: Balazs Varga <balazs.varga991@gmail.com> Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
2020-01-07tdf#86731 Don't show 'start from beginning' when dictionary is missingSzymon Kłos1-3/+4
Change-Id: I160e4b15e3c636be0e23dd5bbb2da62dfa6a42ef Reviewed-on: https://gerrit.libreoffice.org/c/core/+/82169 Tested-by: Jenkins Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Tested-by: Michael Meeks <michael.meeks@collabora.com> (cherry picked from commit a50a2bf8e8c6084aeacb8d2db42e21f528410742) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86345 Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
2020-01-07tdf#129708 speed-up: check if we could create outline instead of creation of itSerge Krot2-2/+2
Change-Id: I0629b4e6ccae4ab9be0142fe39c627f2f9a8f5ea Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86199 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> (cherry picked from commit 92ccf53b2a8102299ac2c3e2612bb507d3a79c0f) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86278
2020-01-07Resolves: tdf#129527 enable/disable edit-style button at the right timeCaolán McNamara1-7/+5
Change-Id: I70b14ad8d96a2564c06a47608e5cf2c438cf7d38 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86265 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2020-01-06tdf#129712: check if outliner view pointer is valid to avoid crashMike Kaganski1-1/+1
Regression after commit 64233bbaa0e91ddf14d59ae7547df6bbfa60adcc. editenglo.dll!std::unique_ptr<EditView,std::default_delete<EditView>>::operator*() at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\memory(1886) editenglo.dll!OutlinerView::GetEditView() at C:\lo\src\core\include\editeng\outliner.hxx(208) sdlo.dll!sd::DrawViewShell::GetAttrState(SfxItemSet & rSet) at C:\lo\src\core\sd\source\ui\view\drviewsf.cxx(514) sdlo.dll!SfxStubGraphicViewShellGetAttrState(SfxShell * pShell, SfxItemSet & rSet) at C:\lo\src\core\workdir\SdiTarget\sd\sdi\sdgslots.hxx(1524) sfxlo.dll!SfxShell::CallState(void(*)(SfxShell *, SfxItemSet &) pFunc, SfxItemSet & rSet) at C:\lo\src\core\include\sfx2\shell.hxx(199) sfxlo.dll!SfxDispatcher::FillState_(const SfxSlotServer & rSvr, SfxItemSet & rState, const SfxSlot * pRealSlot) at C:\lo\src\core\sfx2\source\control\dispatch.cxx(1672) sfxlo.dll!SfxBindings::Update_Impl(SfxStateCache & rCache) at C:\lo\src\core\sfx2\source\control\bindings.cxx(270) sfxlo.dll!SfxBindings::NextJob_Impl(const Timer * pTimer) at C:\lo\src\core\sfx2\source\control\bindings.cxx(1285) sfxlo.dll!SfxBindings::NextJob(Timer * pTimer) at C:\lo\src\core\sfx2\source\control\bindings.cxx(1230) sfxlo.dll!SfxBindings::LinkStubNextJob(void * instance, Timer * data) at C:\lo\src\core\sfx2\source\control\bindings.cxx(1227) vcllo.dll!Link<Timer *,void>::Call(Timer * data) at C:\lo\src\core\include\tools\link.hxx(111) vcllo.dll!Timer::Invoke() at C:\lo\src\core\vcl\source\app\timer.cxx(76) vcllo.dll!Scheduler::ProcessTaskScheduling() at C:\lo\src\core\vcl\source\app\scheduler.cxx(478) vcllo.dll!Scheduler::CallbackTaskScheduling() at C:\lo\src\core\vcl\source\app\scheduler.cxx(288) vcllo.dll!SalTimer::CallCallback() at C:\lo\src\core\vcl\inc\saltimer.hxx(55) vclplug_winlo.dll!WinSalTimer::ImplHandleElapsedTimer() at C:\lo\src\core\vcl\win\app\saltimer.cxx(164) vclplug_winlo.dll!WinSalTimer::ImplHandleTimerEvent(unsigned __int64 aWPARAM) at C:\lo\src\core\vcl\win\app\saltimer.cxx(174) vclplug_winlo.dll!SalComWndProc(HWND__ * __formal, unsigned int nMsg, unsigned __int64 wParam, __int64 lParam, bool & rDef) at C:\lo\src\core\vcl\win\app\salinst.cxx(626) vclplug_winlo.dll!SalComWndProcW(HWND__ * hWnd, unsigned int nMsg, unsigned __int64 wParam, __int64 lParam) at C:\lo\src\core\vcl\win\app\salinst.cxx(658) user32.dll!UserCallWinProcCheckWow() user32.dll!DispatchMessageWorker() vclplug_winlo.dll!ImplSalDispatchMessage(const tagMSG * pMsg) at C:\lo\src\core\vcl\win\app\salinst.cxx(420) vclplug_winlo.dll!ImplSalYield(bool bWait, bool bHandleAllCurrentEvents) at C:\lo\src\core\vcl\win\app\salinst.cxx(493) vclplug_winlo.dll!WinSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents) at C:\lo\src\core\vcl\win\app\salinst.cxx(522) vcllo.dll!ImplYield(bool i_bWait, bool i_bAllEvents) at C:\lo\src\core\vcl\source\app\svapp.cxx(446) vcllo.dll!Application::Yield() at C:\lo\src\core\vcl\source\app\svapp.cxx(511) vcllo.dll!Application::Execute() at C:\lo\src\core\vcl\source\app\svapp.cxx(427) sofficeapp.dll!desktop::Desktop::Main() at C:\lo\src\core\desktop\source\app\app.cxx(1609) vcllo.dll!ImplSVMain() at C:\lo\src\core\vcl\source\app\svmain.cxx(191) vcllo.dll!SVMain() at C:\lo\src\core\vcl\source\app\svmain.cxx(226) sofficeapp.dll!soffice_main() at C:\lo\src\core\desktop\source\app\sofficemain.cxx(171) soffice.bin!sal_main() at C:\lo\src\core\desktop\source\app\main.c(48) soffice.bin!main(int argc, char * * argv) at C:\lo\src\core\desktop\source\app\main.c(47) soffice.bin!invoke_main() at d:\agent\_work\5\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl(79) soffice.bin!__scrt_common_main_seh() at d:\agent\_work\5\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl(288) soffice.bin!__scrt_common_main() at d:\agent\_work\5\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl(331) soffice.bin!mainCRTStartup() at d:\agent\_work\5\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp(17) kernel32.dll!BaseThreadInitThunk() ntdll.dll!RtlUserThreadStart() Change-Id: Ia9ba183bc1be2f22082ac3833e57435dd8462adf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86097 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit e590d1ab4a3f605141d653b575d645453dba57c9) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86101 Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-12-31tdf#59666 AutoCorrect: don't capitalize single Greek lettersLászló Németh1-0/+16
in automatic sentence capitalization (except in Greek texts), to keep the requested lower case scientific and mathematical symbols. Change-Id: I0c658bb69fb90e7159665939f85f1fd99477c730 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/85955 Reviewed-by: László Németh <nemeth@numbertext.org> Tested-by: László Németh <nemeth@numbertext.org> (cherry picked from commit 04ef45a6dd7692c6ee08769c4ac4a0e92a0b64b8) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86042 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2019-12-31tdf#38394 AutoCorrect: fix ’« in French l’« word »László Németh2-0/+68
instead of using the bad ’" -> ’» autocorrection. Change-Id: I48adbb2e8ca8e786c7835ff186d4580e856cf3c7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/85945 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org> Tested-by: László Németh <nemeth@numbertext.org> (cherry picked from commit 8039c9eb27170a162830f0ecd2086010a7a5858f) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/85951
2019-12-29sw: fix widow loop with as-char flys in text formattingMichael Stahl3-5/+7
The document has a paragraph with 4 as-character anchored flys depicting Zirbenholz; due to their size and an additional fly that is anchored at the paragraph, there are 3 lines that do not fit onto a single page. This situation causes a loop that proceeds like this: text frame 80 is the follow of text frame 21. when formatting 80: the 1 line violates the widow rule (>=2) and PREP_WIDOWS is sent to 21, invalidating its FrameAreaSize 80 validates its FrameAreaSize when formatting 21: PREP_WIDOWS_ORPHANS sent to 21 CalcPreps() sees IsPrepWidows() and sets a huge height and calls SetWidow(true) SwTextFrame::WouldFit() sees IsWidow() true and resets it false SwTextFrame::WouldFit() sees IsWidow() false and a huge but insufficiently huge height 21 validates its FrameAreaSize CalcPreps() sees IsPrepAdjust() FindBreak() calls TruncLines() and because of as-char fly invalidates FrameAreaSize of 80 The loop is most easily reproduced by printing via the API; it's possible to get a loop when loading the document in the UI, but typically the UI remains responsive even though the layout never finishes. As it happens, before commit ee299664940139f6f9543592ece3b3c0210b59f4 "SalInstance::DoYield: Don't drop SolarMutex when accessing user event queue" the loop on printing via API was broken by releasing SolarMutex; the result, however, was incorrect, with the last line of Zirbenholz that should be on the second page missing in the PDF. This loop is presumably a regression from commit f2e3655255db4032738849cd4b77ce67a6e2c984 "Avoid -fsanitize=signed-integer-overflow", which changed a magic number in SwTextFrame::CalcPreps(), but didn't adapt the poorly documented corresponding magic numbers in SwTextFrame::WouldFit(); in LO 5.1.6.2 the CPU is idle after loading the document. Change-Id: Ib6563c21edb68945c14a61b51ba34f0ee3f2544a Reviewed-on: https://gerrit.libreoffice.org/85623 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit 68a5afaaabd0c75bba3439cfdff90fb75d1cdd3f) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/85746 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2019-12-29tdf#54409 fix AutoCorrect with Unicode quotation marksLászló Németh1-2/+28
Now single or double typographical quotation marks don't break automatic correction of the quoted words. For example, ‘acn -> ‘can, acn’ -> can’, “acn” -> “can”. Change-Id: I7f895414be4c3bbc9a3914df83d93cf28b4311a3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/85812 Reviewed-by: László Németh <nemeth@numbertext.org> Tested-by: László Németh <nemeth@numbertext.org> (cherry picked from commit 0d52da4637b563c175cd21d04a639160441436ef) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/85930 Tested-by: Jenkins