summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* svx: use gfx::Length based types directly in SdrTextObj::NbcResizeprivate/tvajngerl/stagingTomaž Vajngerl2024-02-061-39/+60
| | | | Change-Id: I839430b30685994e1767998b353c63b97f461284
* svx: use gfx::Length based types directly in SdrTextObj::NbcMoveTomaž Vajngerl2024-02-061-15/+21
| | | | Change-Id: Ib0d4a9f60a2ae7f64d914c7a39aa146fef6a9f74
* svx: use gfx::Length based types directly in SdrTextObj::NbcRotateTomaž Vajngerl2024-02-064-26/+98
| | | | Change-Id: Ic5ee712fa7507e016441595f8847649fd18b50ee
* svx: change SdrObjGeoData aBoundRectangle using gfx::Range2DLWrapTomaž Vajngerl2024-02-063-3/+24
| | | | Change-Id: I13213ea2bdbfc5badb87d1bbd836192b8ae45e72
* svx: refactor SdrObject resize to use m_aOutterRange directlyTomaž Vajngerl2024-02-064-14/+112
| | | | Change-Id: I77aad10b32a53545c7f7bbf8fd87b914395a5bad
* use Range2DLWrap for the main rectangle in SdrTextObjectTomaž Vajngerl2024-02-065-31/+45
| | | | Change-Id: I0d8ac090f9442fe561b4f87aa767185a987874c4
* use Range2DLWrap for "OutRectangle" in SdrObjectTomaž Vajngerl2024-02-065-37/+56
| | | | Change-Id: I243b44a84bc09991744009ae24ac7657d493c5cf
* svx: change PaperInfo to return gfx::Length paper sizesTomaž Vajngerl2024-02-064-16/+39
| | | | Change-Id: Ie99a748ab9282893a852278be9793f7379522541
* svx: change SdrPage size and border to use gfx::LengthTomaž Vajngerl2024-02-0686-642/+667
| | | | Change-Id: I382cfba6189eab02581057ab5af437cd1d163138
* gfx: add Length class as the base unit for lengthTomaž Vajngerl2024-02-067-0/+993
| | | | Change-Id: I1d4790b60dd784e8b2e2e438274f3ebd6db4b60c
* basegfx: add shift, setSize, setPosition to range classes, add testsTomaž Vajngerl2024-02-065-0/+155
| | | | Change-Id: If962fa3ca3e4111fb98dcc3e1caa28f8c72f97b1
* vcl: add more methods to the PDFiumTomaž Vajngerl2024-02-062-2/+42
| | | | Change-Id: I74ef0f713125c7069620d1abc9534a636c1707d9
* Add PDF importer to read a PDF into drawinglayer primitivesTomaž Vajngerl2024-02-0611-0/+829
| | | | Change-Id: I8d2e28a39515dfef8a1b4c6b06df095dd3a4eaec
* Update BitmapSymmetryCheck checkTomaž Vajngerl2024-02-064-66/+174
| | | | Change-Id: I5b0080ebc76f7c1cd118cf5317b06ffe1a1c20df
* Combo image down-scaler and HalfScalerTomaž Vajngerl2024-02-067-1/+1874
| | | | Change-Id: I2c422f983e378cff47c5534f0f2774ffb41e2a25
* vcl: add Bitmap 24+8 to 32 bit conversion toolTomaž Vajngerl2024-02-062-0/+42
| | | | Change-Id: I0f622624bf53f4a7128964abf226bf82178566e1
* add ScopedNanoTimer for benchmark timingTomaž Vajngerl2024-02-051-0/+42
| | | | Change-Id: Ia64927722446629a468b8714414704404f33480e
* tdf#159428 Prefer heading over bookmarks in NavigatorSamuel Mehrbrodt2024-02-053-56/+104
| | | | | | | | | | When a bookmark is in a heading, highlighting the heading is more important than highlighting the bookmark. Change-Id: I6348e42b14ece226a25961bd3145193645972e79 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162694 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
* tdf#158924 Handle multi-clicks for navigation barVladislav Tarakanov2024-02-052-1/+10
| | | | | | | | | | | | | Added handling for navigation bar buttons when many quick clicks have been made. To do this, after processing the first click, the number of clicks in the series is stored in a new variable. Until the entire series of clicks has been processed, the slide switch will not occur. Change-Id: I8f4416a0c7928bb78609be8ff52252782c37f5a0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161625 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
* cid#1591491 Big parameter passed by valueCaolán McNamara2024-02-041-5/+5
| | | | | | | Change-Id: Ia08747a92018355809970b0dc85b1dc258f38eba Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162968 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
* cid#1591484 Dereference after null checkCaolán McNamara2024-02-041-1/+4
| | | | | | | Change-Id: Id3ea18587cf3bccd808de48af6cd4a502d67cef8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162973 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
* cid#1591494 Dereference null return valueCaolán McNamara2024-02-041-1/+4
| | | | | | | Change-Id: I578093091f70431bd46de55b56b7c1ebab0cd75b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162972 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
* cid#1591496 Dereference null return valueCaolán McNamara2024-02-041-15/+18
| | | | | | | Change-Id: Ic26b910cc9243607641a19ceb2988ed3011939ad Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162971 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
* just call pSFly->Lower() onceCaolán McNamara2024-02-041-2/+3
| | | | | | | Change-Id: I35c11a41503ee6f23c8692fa75d0fe4a7e7a323a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162970 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
* cid#1591487 Dereference after null checkCaolán McNamara2024-02-041-3/+2
| | | | | | | Change-Id: I18ec37320fe635af8559718a0f16c25a837197ec Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162966 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
* Use constexpr instead of constMike Kaganski2024-02-041-1/+1
| | | | | | | | | See commit bf2ae3c25a5da3a323c06fd5f949660ee64f0fa6 for rationale. Change-Id: I456bc7c7124a277b34b6334d16090607e14075e6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162969 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
* Move mnTransparenceForShadow down to SdrCellPrimitive2DNoel Grandin2024-02-0414-83/+184
| | | | | | | | | | | | where it belongs. It appears it was only put into BufferedDecompositionPrimitive2D so that it can be accessed by Primitive2DXmlDump, so fix that by creating an extended version of the dumper for use in svx. Change-Id: Idb0b849c4fa538bbede882e48c2d090669c2325a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162949 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
* use ViewShell DOCCOLOR when available for chartsCaolán McNamara2024-02-041-2/+9
| | | | | | | Change-Id: I200538bd94d60867d84b7dc37811094b65dd9aa5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162850 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
* cid#1591492 COPY_INSTEAD_OF_MOVECaolán McNamara2024-02-045-9/+6
| | | | | | | | | | | | | | | and cid#1591489 COPY_INSTEAD_OF_MOVE cid#1591488 COPY_INSTEAD_OF_MOVE cid#1591485 COPY_INSTEAD_OF_MOVE cid#1591483 COPY_INSTEAD_OF_MOVE cid#1591482 COPY_INSTEAD_OF_MOVE Change-Id: I944ddb05042fbfe53f73eac2c16f3263cf3a4594 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162955 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
* cid#1591481 Dereference after null checkCaolán McNamara2024-02-041-2/+2
| | | | | | | Change-Id: I3c2c94968073e557863f0e1fddf1dea5649a94f2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162960 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
* SwLayoutFrame::IsAnLower returns false if passed nullptrCaolán McNamara2024-02-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | so this is equivalent to what was already here and make this block and the previous block more uniform { const SwFrame *pUp = pAssumed; while ( pUp ) { if (!pUp->IsInDtor()) { if (pUp == this) return true; if (pUp->IsFlyFrame()) pUp = static_cast<const SwFlyFrame*>(pUp)->GetAnchorFrame(); else pUp = pUp->GetUpper(); } else break; } return false; } Change-Id: I763722f7b33a3d8148d46c9d30386c6c3f8663ad Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162959 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
* cid#1455212 Uncaught exceptionCaolán McNamara2024-02-044-2/+18
| | | | | | | | | | | and cid#1401342 Uncaught exception Change-Id: I77c2303ceb25301d85bfc9f8f6dc9eb8f4c4494a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162945 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
* cid#1591493 Unchecked return valueCaolán McNamara2024-02-042-3/+7
| | | | | | | Change-Id: I0d39e142d3fd4100f68f1fff3f9d305aa1b59728 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162954 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
* cid#1591495 Resource leakCaolán McNamara2024-02-041-0/+1
| | | | | | | | | | | | | | since: commit 1d7ce421480d9170316533de03feb8d04eb5c767 Date: Tue Jan 30 17:15:07 2024 +0600 tdf#159438: when there's no frame, close previous bookmark first Change-Id: I81a28429041047afbe6f4cea327e6f19e3805cc3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162953 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
* cid#1591486 Logically dead codeCaolán McNamara2024-02-041-5/+1
| | | | | | | | | | | | | | since: commit 93c4bfc96acf7f387120ff05883068d358a608c1 Date: Thu Jan 25 10:29:47 2024 +0200 make writer databases dialog async Change-Id: Ic67a7b5313e1dfad9c34fc3bf05ca808af29ceba Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162944 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
* tdf#119931 Fix accessibility warnings in sw/uiconfigVenetia2024-02-043-4/+4
| | | | | | | | | | | In files linenumbering.ui and optfonttabpage.ui the labels 'intervallines', 'lines' and 'font_label' respectively are there for visual coherence but do not provide any meaning. Therefore, moved them from suppression to false file Change-Id: Ied1001a8b445574e4ceca92c4fdf45a4e5a8ca97 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161807 Tested-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org> Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
* tdf#130857 qt weld: Support asnyc running of msg dialogsMichael Weghorn2024-02-044-1/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement methods required to run a welded Qt message dialog asynchronously: `QtInstanceMessageDialog::runAsync` and `QtInstanceMessageDialog::response`. Run the dialog asynchronously using `QDialog::open` and connect to the `QDialog::finished` signal to be notified when the dialog gets closed. Similar to how the gtk-based implementation, use local variables for the `std::shared_ptr`s and reset the members right away, not only at the end of the slot, since resetting the relevant one set in the corresponding `runAsync` overload will result in the object getting deallocated, thus the members can no longer be accessed safely. Take the solar mutex before calling the callback function as that seems to be expected (e.g. otherwise triggers an assert for the below example where the callback functions modifies VCL widgets). With this in place, running welded Qt message dialogs asynchronously works instead of not showing up at all, e.g. 1) start Writer with qt6 VCL plugin and without `SAL_VCL_QT_NO_WELDED_WIDGETS` set 2) open "File" -> "Properties" -> "Security" 3) click the "Protect..." button 4) enter 2 different passwords and press "OK" button Change-Id: Ic1b1bfc7d89c1be8a9f9dee59bc86cf3da37a280 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162948 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
* tdf#45904 Remove old SwXBodyText Java testLuv Sharma2024-02-045-158/+0
| | | | | | | Change-Id: I3dcef5782e81340e8a3ee2433246ddd23560dd5d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162943 Tested-by: Taichi Haradaguchi <20001722@ymail.ne.jp> Reviewed-by: Taichi Haradaguchi <20001722@ymail.ne.jp>
* Use constexpr instead of constMike Kaganski2024-02-041-1/+1
| | | | | | | | | | | | | A local const static still needs a constructor the first time, and the short atomic checks if it is initialized every time the control flow crosses it. A constexpr static does not need all of that. Change-Id: I9c4cc082c7dfafcf6197dbe5a697ab27fdef2711 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162952 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
* Make sure to use strict weak ordering when sortingMike Kaganski2024-02-041-25/+81
| | | | | | | | | | | | | | | See https://gerrit.libreoffice.org/c/core/+/152676/2#message-ea10fe33b46fee581d47c04d04291a59049d4ac3 The complexity of intended sort requires to split the languages by language groups first, and use the "generic first" comparison only inside groups. As the result, e.g. Aranese and Occitan are grouped together. Change-Id: Ibf11e72c4dfb7876eecea7f3f302c313d153bcbc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162947 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
* First-class Embind JS support for OUStringStephan Bergmann2024-02-035-10/+69
| | | | | | | Change-Id: Ic178737da802e17f87d0b5b09004a847b0fe91be Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162956 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
* natstepfilter: skip std::vector::operator[]Mike Kaganski2024-02-031-1/+5
| | | | | | | Change-Id: I6605b4bc74ba186e06693ef5346e7b7fd0c0b9df Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162938 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
* loplugin:unnecessarygetstr fix false +Noel Grandin2024-02-022-3/+22
| | | | | | | | | spotted in https://gerrit.libreoffice.org/c/core/+/162869 Change-Id: I87d9fdcfed5282f0e94fc8aa95a46054883fdd79 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162929 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
* tdf#159461 deadlock in Dialog "XML Filter Settings"Noel Grandin2024-02-022-126/+139
| | | | | | | | | | | | | | | | | revert commit 15405dc68b2e88b53585578567da13e3e99962db Author: Noel Grandin <noel.grandin@collabora.co.uk> Date: Mon Feb 20 15:43:41 2023 +0200 osl::Mutex->std::mutex in FilterCache There is much recursive behaviour going on here, via the configmgr and the listeners that FilterCache has. Change-Id: Ice003404dffad9e5e63bcff30c2ceede4f52cab8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162930 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
* writerfilter: fix missing paragraph break on tdf136445-1.rtfMichael Stahl2024-02-026-54/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This causes an assert: crossrefbookmark.cxx:44: sw::mark::CrossRefBookmark::CrossRefBookmark(): Assertion `IDocumentMarkAccess::IsLegalPaMForCrossRefHeadingBookmark(rPaM) && "<CrossRefBookmark::CrossRefBookmark(..)>" "- creation of cross-reference bookmark with an illegal PaM that does not expand over exactly one whole paragraph."' failed. The problem is that there is an annotation at the end of a paragraph, and reading the annotation changes various members of DomainMapper_Impl, in particular m_bParaSectpr and m_bParaChanged, causing "bRemove" in DomainMapper::lcl_utext() to be erroneously true, removing the just inserted paragraph break again. Move all flags that are evaluated for bRemove to SubstreamContext. This causes one test failure, but it turns out that the new result is the same as in Word 2013. Test name: (anonymous namespace)::testTdf108947::TestBody equality assertion failed - Expected: Header Page 2 ? - Actual : Header Page 2 ? (regression from commit 15b886f460919ea3dce425a621dc017c2992a96b) Change-Id: I44a7a8928ab04c600d4d3c43bc4e4deeafe57d89 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162932 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
* tdf#149499 Prevent crash upon inserting page break and undoingMatt K2024-02-024-18/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The problem is the code uses objects that have been destructed or don't exist likely because of destruction, thus causing crashes. The fix is to check for the existence of these objects or whether they have been destructed prior to using them. Also removed some asserts that were firing that don't appear to be valid. A crash happens when executing an assert in an undo scenario because the SwFlowFrame on the SwFlowFrame::GetFollow call stack frame is an "Exception thrown: read access violation. this was 0xFFFFFFFFFFFFFFEF." > swlo.dll!SwFlowFrame::GetFollow() Line 169 C++ swlo.dll!SwFlowFrame::IsAnFollow(const SwFlowFrame * pAssumed) Line 757 C++ swlo.dll!SwFootnoteFrame::GetRef() Line 2947 C++ swlo.dll!SwFootnoteBossFrame::FindFirstFootnote() Line 1114 C++ swlo.dll!SwFootnoteBossFrame::InsertFootnote(SwFootnoteFrame * pNew) Line 1271 C++ swlo.dll!SwFootnoteBossFrame::AppendFootnote(SwContentFrame * pRef, SwTextFootnote * pAttr) Line 1665 C++ swlo.dll!SwTextFrame::ConnectFootnote(SwTextFootnote * pFootnote, const __int64 nDeadLine) Line 692 C++ swlo.dll!SwTextFormatter::NewFootnotePortion(SwTextFormatInfo & rInf, SwTextAttr * pHint) Line 840 C++ swlo.dll!SwTextFormatter::NewExtraPortion(SwTextFormatInfo & rInf) Line 283 C++ swlo.dll!SwTextFormatter::NewPortion(SwTextFormatInfo & rInf, std::optional<o3tl::strong_int<long,Tag_TextFrameIndex>> oMovedFlyIndex) Line 1738 C++ swlo.dll!SwTextFormatter::BuildPortions(SwTextFormatInfo & rInf) Line 773 C++ swlo.dll!SwTextFormatter::FormatLine(o3tl::strong_int<long,Tag_TextFrameIndex> nStartPos) Line 1955 C++ Another callstack observed for an assert (other version of SwFootnoteFrame::GetRef) in a undo/redo scenario was: ucrtbased.dll!issue_debug_notification(const wchar_t * const message) Line 28 C++ ucrtbased.dll!__acrt_report_runtime_error(const wchar_t * message) Line 154 C++ ucrtbased.dll!abort() Line 61 C++ ucrtbased.dll!common_assert_to_stderr<wchar_t>(const wchar_t * const expression, const wchar_t * const file_name, const unsigned int line_number) Line 187 C++ ucrtbased.dll!common_assert<wchar_t>(const wchar_t * const expression, const wchar_t * const file_name, const unsigned int line_number, void * const return_address) Line 420 C++ ucrtbased.dll!_wassert(const wchar_t * expression, const wchar_t * file_name, unsigned int line_number) Line 444 C++ > swlo.dll!SwFootnoteFrame::GetRef() Line 2938 C++ swlo.dll!SwTextFrameBreak::IsInside(const SwTextMargin & rLine) Line 172 C++ swlo.dll!SwTextFrameBreak::IsBreakNow(SwTextMargin & rLine) Line 230 C++ swlo.dll!SwTextFrame::FormatAdjust(SwTextFormatter & rLine, WidowsAndOrphans & rFrameBreak, o3tl::strong_int<long,Tag_TextFrameIndex> nStrLen, const bool bDummy) Line 1101 C++ swlo.dll!SwTextFrame::Format_(SwTextFormatter & rLine, SwTextFormatInfo & rInf, const bool bAdjust) Line 1757 C++ swlo.dll!SwTextFrame::FormatImpl(OutputDevice * pRenderContext, SwParaPortion * pPara, std::vector<SwAnchoredObject *,std::allocator<SwAnchoredObject *>> & rIntersectingObjs) Line 1865 C++ swlo.dll!SwTextFrame::Format(OutputDevice * pRenderContext, const SwBorderAttrs * __formal) Line 2068 C++ swlo.dll!SwContentFrame::MakeAll(OutputDevice * __formal) Line 1532 C++ swlo.dll!SwFrame::PrepareMake(OutputDevice * pRenderContext) Line 388 C++ swlo.dll!SwFrame::Calc(OutputDevice * pRenderContext) Line 1814 C++ swlo.dll!SwFootnoteBossFrame::AppendFootnote(SwContentFrame * pRef, SwTextFootnote * pAttr) Line 1687 C++ swlo.dll!SwTextFrame::ConnectFootnote(SwTextFootnote * pFootnote, const __int64 nDeadLine) Line 692 C++ swlo.dll!SwTextFormatter::NewFootnotePortion(SwTextFormatInfo & rInf, SwTextAttr * pHint) Line 840 C++ swlo.dll!SwTextFormatter::NewExtraPortion(SwTextFormatInfo & rInf) Line 283 C++ swlo.dll!SwTextFormatter::NewPortion(SwTextFormatInfo & rInf, std::optional<o3tl::strong_int<long,Tag_TextFrameIndex>> oMovedFlyIndex) Line 1738 C++ swlo.dll!SwTextFormatter::BuildPortions(SwTextFormatInfo & rInf) Line 773 C++ swlo.dll!SwTextFormatter::FormatLine(o3tl::strong_int<long,Tag_TextFrameIndex> nStartPos) Line 1955 C++ The assert in sw\source\core\inc\drawfont.hxx happened when adding some text in the footnotes and then undoing. Here is the callstack: ucrtbased.dll!issue_debug_notification(const wchar_t * const message) Line 28 C++ ucrtbased.dll!__acrt_report_runtime_error(const wchar_t * message) Line 154 C++ ucrtbased.dll!abort() Line 61 C++ ucrtbased.dll!common_assert_to_stderr<wchar_t>(const wchar_t * const expression, const wchar_t * const file_name, const unsigned int line_number) Line 187 C++ ucrtbased.dll!common_assert<wchar_t>(const wchar_t * const expression, const wchar_t * const file_name, const unsigned int line_number, void * const return_address) Line 420 C++ ucrtbased.dll!_wassert(const wchar_t * expression, const wchar_t * file_name, unsigned int line_number) Line 444 C++ > swlo.dll!SwDrawTextInfo::SwDrawTextInfo(const SwViewShell * pSh, OutputDevice & rOut, const SwScriptInfo * pSI, const rtl::OUString & rText, const o3tl::strong_int<long,Tag_TextFrameIndex> nIdx, const o3tl::strong_int<long,Tag_TextFrameIndex> nLen, unsigned short nWidth, bool bBullet, const vcl::text::TextLayoutCache * const pCachedVclData) Line 123 C++ swlo.dll!SwTextSizeInfo::GetTextSize() Line 422 C++ swlo.dll!SwTextPortion::GetTextSize(const SwTextSizeInfo & rInf) Line 544 C++ swlo.dll!SwTextCursor::GetCharRect_(SwRect * pOrig, o3tl::strong_int<long,Tag_TextFrameIndex> nOfst, SwCursorMoveState * pCMS) Line 943 C++ swlo.dll!SwTextCursor::GetCharRect(SwRect * pOrig, o3tl::strong_int<long,Tag_TextFrameIndex> nOfst, SwCursorMoveState * pCMS, const __int64 nMax) Line 1270 C++ swlo.dll!SwTextFrame::GetCharRect(SwRect & rOrig, const SwPosition & rPos, SwCursorMoveState * pCMS, bool bAllowFarAway) Line 285 C++ swlo.dll!SwCursorShell::UpdateCursor(unsigned short eFlags, bool bIdleEnd) Line 2271 C++ swlo.dll!SwCursorShell::EndAction(const bool bIdleEnd) Line 283 C++ swlo.dll!SwEditShell::EndAllAction() Line 102 C++ swlo.dll!SwWrtShell::Do(SwWrtShell::DoType eDoType, unsigned short nCnt, unsigned short nOffset) Line 60 C++ swlo.dll!SwBaseShell::ExecUndo(SfxRequest & rReq) Line 657 C++ Another assert in sw\source\core\inc\drawfont.hxx happened when adding text to footnotes and undoing twice. Callstack: ucrtbased.dll!issue_debug_notification(const wchar_t * const message) Line 28 C++ ucrtbased.dll!__acrt_report_runtime_error(const wchar_t * message) Line 154 C++ ucrtbased.dll!abort() Line 61 C++ ucrtbased.dll!common_assert_to_stderr<wchar_t>(const wchar_t * const expression, const wchar_t * const file_name, const unsigned int line_number) Line 187 C++ ucrtbased.dll!common_assert<wchar_t>(const wchar_t * const expression, const wchar_t * const file_name, const unsigned int line_number, void * const return_address) Line 420 C++ ucrtbased.dll!_wassert(const wchar_t * expression, const wchar_t * file_name, unsigned int line_number) Line 444 C++ > swlo.dll!SwDrawTextInfo::SetLen(const o3tl::strong_int<long,Tag_TextFrameIndex> nNew) Line 493 C++ swlo.dll!SwSubFont::GetTextSize_(SwDrawTextInfo & rInf) Line 1006 C++ swlo.dll!SwFont::GetTextSize_(SwDrawTextInfo & rInf) Line 314 C++ swlo.dll!SwTextSizeInfo::GetTextSize() Line 428 C++ swlo.dll!SwTextPortion::GetTextSize(const SwTextSizeInfo & rInf) Line 544 C++ swlo.dll!SwTextCursor::GetCharRect_(SwRect * pOrig, o3tl::strong_int<long,Tag_TextFrameIndex> nOfst, SwCursorMoveState * pCMS) Line 943 C++ swlo.dll!SwTextCursor::GetCharRect(SwRect * pOrig, o3tl::strong_int<long,Tag_TextFrameIndex> nOfst, SwCursorMoveState * pCMS, const __int64 nMax) Line 1270 C++ swlo.dll!SwTextFrame::GetCharRect(SwRect & rOrig, const SwPosition & rPos, SwCursorMoveState * pCMS, bool bAllowFarAway) Line 285 C++ swlo.dll!SwCursorShell::UpdateCursor(unsigned short eFlags, bool bIdleEnd) Line 2271 C++ swlo.dll!SwCursorShell::EndAction(const bool bIdleEnd) Line 283 C++ swlo.dll!SwEditShell::EndAllAction() Line 102 C++ swlo.dll!SwWrtShell::Do(SwWrtShell::DoType eDoType, unsigned short nCnt, unsigned short nOffset) Line 60 C++ swlo.dll!SwBaseShell::ExecUndo(SfxRequest & rReq) Line 657 C++ I wasn't able to consistently repro the assert in sw\source\core\text\txtfrm.cxx, but it did happen at least once in my testing. Change-Id: I66fdedcd1f88fc2eb4e60ef6bd9f6baa46fe4684 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162317 Tested-by: Jenkins Reviewed-by: Matt K <mattkse@gmail.com>
* Update git submodulesAlain Romedenne2024-02-021-0/+0
| | | | | | | | | | | * Update helpcontent2 from branch 'master' to a9733f825b5a4d316227d1a275c59e1ab5327375 - SF_Toc correction Change-Id: I1abd145c121a623ed9c8f62bdfac07eb03a559ff Reviewed-on: https://gerrit.libreoffice.org/c/help/+/162892 Tested-by: Jenkins Reviewed-by: Alain Romedenne <alain.romedenne@libreoffice.org>
* tdf#154587: sc_subsequent_filters_test4: Add unittestXisco Fauli2024-02-021-2/+0
| | | | | | | Change-Id: I05cc51df1bef109bba48f340fdfe21ed1a12dc18 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162914 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
* sw: do not redline ContentControl itemsAshod Nakashian2024-02-022-0/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we redline the ContentControl item itself, we break docx XML. Instead, we only need to redline the placeholder, which we already do. This simply disables redlining when inserting the ContentControl item while leaving it otherwise enabled while inserting the placeholder. Before: <w:body> <w:p> <w:pPr> <w:pStyle w:val="Normal"/> <w:rPr></w:rPr> </w:pPr> ==> <w:ins w:id="-1" w:author="Unknown Author" w:date="2024-01-24T19:43:08Z"> <w:sdt> <w:sdtPr> <w12:checkbox> <w12:checked w14:val="0"/> <w12:checkedState w14:val="2612"/> <w12:uncheckedState w14:val="2610"/> </w12:checkbox> </w:sdtPr> <w:sdtContent> <w:r> <w:rPr></w:rPr> </w:r> ==> </w:ins> ==> <w:ins w:id="0" w:author="Unknown Author" w:date="2024-01-24T19:43:08Z"> <w:r> <w:rPr></w:rPr> <w:t>☐</w:t> </w:r> ==> </w:ins> <w:r> <w:rPr></w:rPr> </w:r> </w:sdtContent> </w:sdt> </w:p> </w:body> The first <w:ins> and its closing tag is not seen in the reference docx file, and we can see that it's invalid XML here. After: <w:body> <w:p> <w:pPr> <w:pStyle w:val="Normal"/> <w:rPr></w:rPr> </w:pPr> <w:sdt> <w:sdtPr> <w12:checkbox> <w12:checked w14:val="0"/> <w12:checkedState w14:val="2612"/> <w12:uncheckedState w14:val="2610"/> </w12:checkbox> </w:sdtPr> <w:sdtContent> <w:r> <w:rPr></w:rPr> </w:r> ==> <w:ins w:id="0" w:author="Unknown Author" w:date="2024-01-24T19:43:08Z"> <w:r> <w:rPr></w:rPr> <w:t>☐</w:t> </w:r> ==> </w:ins> <w:r> <w:rPr></w:rPr> </w:r> </w:sdtContent> </w:sdt> </w:p> </w:body> Only the valid <w:ins> around the placeholder exists. Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk> Change-Id: I1404e41aec3b5efdc2e4115236102ffa2733b15c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162802 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
* Revert "tdf#154863 Add unit test to cover crash on image move"Xisco Fauli2024-02-022-14/+0
| | | | | | | | | | | This reverts commit 16d46e25e03cd506576ac3dcb6be56270b47b4a6. Reason for revert: macOs jenkins fails in CppunitTest_sw_core_objectpositioning now Change-Id: I45ed894c9773e0dc23d0f9fdd9066eb5ca7110f5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162901 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>