path: root/sw/source
AgeCommit message (Collapse)AuthorFilesLines
7 hoursFix typosAndrea Gelmini1-1/+1
Change-Id: I48d173ab697425bcff663f7f7d0bbc404a950bb2 Reviewed-on: Tested-by: Jenkins Reviewed-by: Julien Nabet <>
8 hourstdf#149710 sw_redlinenum: update numbering at deletionLászló Németh1-0/+12
in Show Changes mode. Follow-up to commit 2413f213625253a9c2b1787b3b9fe859d724a9bd "tdf#115523 sw_redlinenum: show correct, also original numbering". Change-Id: Iebf54775f3850e668ac5b12ecbd9f010b4e93ee4 Reviewed-on: Tested-by: Jenkins Reviewed-by: László Németh <>
11 hourstdf#43100 tdf#104683 tdf#120715 sw: cursor on spaces over marginAttila Szűcs8-27/+63
Allow cursor movement on spaces over margin (or clicking it it to position the cursor), like MSO does instead of stopping cursor before the stripped (from the typesetting) spaces. This way it's possible to follow the modification of these characters, e.g. removing spaces or inserting other characters at the cursor position. Follow-up to commit 8741fd0e0ae9e346de2e09887f0668b831c9b48b "tdf#43244 sw: show stripped line-end spaces on margin". Details: extend SwHolePortion to calculate its width, that can be used for cursor movement, even over the right margin. Removed some code that not allowed cursor to be positioned over the right margin. Layout calculation uses m_nWidth variable (that was 0) to make frames. To keep the layout unchanged, this new width calculated into m_nExtraBlankWidth temporarily, and this extra width is added to m_nWidth only after the layout calculation is finished. (Ideally this 2 width values could be stored and used separately, but that would require a bigger refactor of the cursor calculation.) Known regression: lost selection at Search & Replace, e.g. searching double spaces: there was a narrow selection at end of the line showing the position. Other issues: when a different character inserted on the margin resulting new line break, space formatting marks aren't updated according to the less spaces. Removing the inserted character by Backspace results losing of the cursor movement on the spaces. Co-authored-by: Tibor Nagy (NISZ) Change-Id: I94b4ed40b8c560e1ef32f4d0d3537e070c08666f Reviewed-on: Reviewed-by: László Németh <> Tested-by: László Németh <>
13 hourstdf#132781 DOCX: export interoperable hyperlink style namesTünde Tóth3-10/+6
Similar to the paragraph styles, export default character style names instead of the localized ones to avoid e.g. not interoperable hyperlinks in MSO. Change-Id: I65678a564ae4e73a1d8319df364defd698381256 Reviewed-on: Reviewed-by: László Németh <> Tested-by: László Németh <>
16 hourssw: fix crash in SwLayoutFrame::GetContentPosXisco Fauli1-5/+19
FindPageFrame might return nullptr See,bool,bool,SwCursorMoveState%20*,bool) Change-Id: Ic69d26de4ab234ebd6283ace640d689f0ebe8eb3 Reviewed-on: Tested-by: Jenkins Reviewed-by: Xisco Fauli <>
16 hourstdf#115523 sw_redlinenum: show correct, also original numberingLászló Németh3-31/+111
in Show Changes mode, according to the name "Show Changes" and according to the interoperability requirements. Instead of the fake numbering which counted the deleted list items in Show Changes mode, e.g.: "3. This was the third originally, but now it's the second list item." now show the correct number followed by the original number within braces: "2.[3.] This was the third originally, but now it's the second list item." Note: the tabulators after the longer numbering are replaced with spaces to avoid messy indentation in Show Changes mode. New enum values for the alternative lists: SwListRedlineType::SHOW - the original (fake) numbering in Show Changes mode SwListRedlineType::HIDDEN - the original numbering of Hide Changes mode, and new numbering in Show Changes mode SwListRedlineType::ORIGTEXT - the new numbering of Show Changes mode to show the original numbering of the deleted or inserted list items Follow-up to commit c180c9447256588fe5e7991e06642883574760ae "sw_redlinehide_3: add second SwNodeNum to SwTextNode". Change-Id: Ieaca550561c5d5a7ac5d9defb9c7fa283d6aa674 Reviewed-on: Tested-by: Jenkins Reviewed-by: László Németh <>
18 hoursCppunitTest_sw_layoutwriter: use more SwParaPortion::dumpAsXml()Miklos Vajna1-0/+6
See commit feeed3e762cf077fbd9cf48f82e949365108ccc1 (CppunitTest_sw_layoutwriter: avoid some a11y-based layout testing, 2022-04-07) for motivation. Change-Id: I8d621a735cb269d9d3ab425351af7b2b7052a3e1 Reviewed-on: Tested-by: Jenkins Reviewed-by: Miklos Vajna <>
37 hourstdf#149615: "No list" twice in Outline & Style tab (non English UI only)Julien Nabet2-2/+2
Change-Id: I8a983b62175ed00ca8817556bd3e55fc87ddc9d7 Reviewed-on: Tested-by: Jenkins Reviewed-by: Julien Nabet <>
2 daystdf#134759 sw: do CopyToModify() for both start and end nodeMichael Stahl3-48/+2
... in SwNodes::MoveRange(). SwRangeRedline::Hide() does CopyToSection()/DelCopyOfSection() so the previous commit fixed it, and SwRangeRedline::Show() does MoveFromSection() so hopefully this should fix it to restore the situation before hiding. This caused several tests to fail, and the reason appears to be that they pretty much tested exactly the problem that's being fixed with this commit, but the pre-existing fixes and the new one cancel each other out. In all cases the pre-exising fix moves all redlines and moves them back again, which is the sort of thing that sw_redlinehide wanted to get rid of; not sure why i didn't notice this earlier. The check for the 3rd paragraph where the style was applied still succeeds with the new bugfix, but the one for the 1st paragraph fails; it is unclear why applying a style to the 3rd paragraph should have an effect on the 1st one. Hence: Revert code changes of commit 1d65ffc5a37be21e0316019b1c96eb9a1c871ac0 "tdf#105413 track changes: keep paragraph styles" Revert code changes of commit d97fc64a819f834302e384792668507df4cc412c "tdf#122893 track changes: keep paragraph alignment" Revert code changes of commit 6a54dd844d1821165642bbcc16bd12a01a23393d "tdf#122901 track changes: keep paragraph top and bottom borders" Change-Id: I0b70134902a7993c7bb11a3c619e45742764c8ae Reviewed-on: Tested-by: Jenkins Reviewed-by: Michael Stahl <>
2 dayssw: fix crash in SwEditWin::MouseButtonDownXisco Fauli1-53/+56
Since GetPageAtPos might return nullptr See Change-Id: I4ad3492ef46bcd7b263a4de92efd9439a966fb56 Reviewed-on: Reviewed-by: Caolán McNamara <> Tested-by: Xisco Fauli <> Reviewed-by: Xisco Fauli <>
3 daysMake code a bit more explicitStephan Bergmann1-17/+13
...and avoid the ugly unsigned short vs. SvxAdjust mismatch Change-Id: Ie820b5fda00942d258668535598027f9d878c013 Reviewed-on: Tested-by: Jenkins Reviewed-by: Stephan Bergmann <>
3 daysUse proper type for aSvxToUnoAdjustStephan Bergmann1-8/+8
...following up on a comment in the commit message of 37ec4442d70339dc8ec5fb8e4ec8984420b6e14d "o3tl: ensure that the initializer of enumarray contains enough elements": "In sw/source/core/unocore/unosett.cxx with its odd mix of saL_Int16 and USHRT_MAX, lets keep things that way for now (probably awaiting later clean up) and use casts to avoid the implicit narrowing." The USHRT_MAX values always mapped to -1 when the elements of aSvxToUnoAdjust are used to initialize sal_Int16 nINT16 later on, so make that explicit here (but an explicit cast from int to sal_Int16 is still needed for them, to avoid narrowing failures from within the enumarray ctor). Change-Id: Ib401ff94c429f8415199a5d35997d17266e04279 Reviewed-on: Tested-by: Jenkins Reviewed-by: Stephan Bergmann <>
3 daysEnd listening and clear active shell when the dying shell view is theJim Raykowski1-3/+18
active shell view Corrects listening not being ended. This patch is based on the code in SwContentTree::Notify to end listening and clear the active shell when the dying shell view is the active shell view. Change-Id: Ic51e8b5355668e3bd133a8370eeb407694cc9e30 Reviewed-on: Tested-by: Jenkins Reviewed-by: Michael Stahl <>
4 daystdf#128150 Only show "Use background" btn in Impress & DrawSamuel Mehrbrodt2-1/+3
Change-Id: I5d14f651af55b51a8a02a8a4ddbb1c0921b15d81 Reviewed-on: Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <>
4 daystdf#140967 docxexport: hairline is default and not a specific valueJustin Luth1-4/+9
This effectively is treated as a zero, although I didn't find any documentaiton that indicated what is supposed to happen when a:ln has no w=. Otherwise these numbers are normally in the thousands, and not "2". Change-Id: I9dd6a334e88feb9a2bafe29f92229b6cfdff9747 Reviewed-on: Tested-by: Jenkins Reviewed-by: Justin Luth <>
4 daysSfxStyleSheetBasePool::Find can be constCaolán McNamara1-5/+5
Change-Id: I5cf2737d05cfe4b0be936a77cfb96db053483438 Reviewed-on: Tested-by: Jenkins Reviewed-by: Caolán McNamara <>
4 daysSwDoc::IsUsed(const SwNumRule&) can be constCaolán McNamara1-1/+1
Change-Id: I9966c2d71670d53375e27090e1ad3dffb780f81e Reviewed-on: Tested-by: Jenkins Reviewed-by: Caolán McNamara <>
4 daysfix SwViewShellImp::AddPaintRect() for sub-rects (tdf#146536)Luboš Luňák1-3/+4
Using just two corners to build the new resulting rect works only if the new rectangle actually really extends the previous one, but the <= means that this may compress also rects that are already contained in the previous rect, in which case it's necessary to make sure to use union to get the larger coordinate). Change-Id: Ie4303dfef903bded6d63625531e424a32cc01b06 Reviewed-on: Tested-by: Luboš Luňák <> Reviewed-by: Luboš Luňák <>
5 dayssw: prefix members of Acd, Customization, MSOWordCommandConvertor and ...Miklos Vajna3-60/+60
... Sttb See tdf#94879 for motivation. Change-Id: Ifc5637a97fced3a4bbab64b4ef9784cb4f586694 Reviewed-on: Reviewed-by: Miklos Vajna <> Tested-by: Jenkins
5 daysofz#47706 TimeoutCaolán McNamara4-23/+67
2m34s->1.6s Change-Id: I2370237e07d6e2a45c831c70ac1c1158efef7816 Reviewed-on: Tested-by: Jenkins Reviewed-by: Caolán McNamara <>
6 dayssw: prefix namespace Justify with sw.Mark Hung3-12/+12
Change-Id: Ia813b93dc719a5715804aa06b555c99eaf99b039 Reviewed-on: Tested-by: Jenkins Reviewed-by: Mark Hung <>
7 dayso3tl: ensure that the initializer of enumarray contains enough elementsMichael Stahl2-8/+8
Currently this silently succeeds. Turns out oox already contains some too-short initializers, let's guess the missing properties are all invalid. One downside of the templated parameter pack approach in the enumarray ctor, as witnessed in vcl/win/window/salframe.cxx, is that argument types can no longer be implicitly deduced and thus need to be spelled explicitly now in certain cases. There were also three uses of enumarry with V being unsigned short (aka sal_uInt16) that started to cause narrowing conversion errors now and needed to be adapted: In editeng/source/uno/unonrule.cxx the obvious fix was to use the proper type for V. In sw/source/core/unocore/unosett.cxx with its odd mix of saL_Int16 and USHRT_MAX, lets keep things that way for now (probably awaiting later clean up) and use casts to avoid the implicit narrowing. And in sw/source/filter/ww8/wrtw8esh.cxx the ESCHER_Prop_* values, while presumably conceptionally of type sal_uInt16, are plain #defines (thus of type int), so rather than changing V to int it looked more consistent to explicitly cast the ESCHER_Prop_* vlaues to sal_uInt16. (And in tools/source/fsys/urlobj.cxx the poor loplugin:redundantfcast started to unhelpfully kick in for (only) the first argument now.) Change-Id: If06c29e673ec7e565e283c6f447889cf1f777cb7 Co-authored-by: Stephan Bergmann <> Reviewed-on: Tested-by: Jenkins Reviewed-by: Stephan Bergmann <>
8 daystdf#134759 sw: clear items in SwAttrSet::CopyToModify()Michael Stahl1-0/+17
Setting new items but not clearing existing items smells like an obvious omission. Why would we want a union of two nodes' items? This improves things a bit for the bugdoc, but now it ends up with a different wrong list on the node 254. Change-Id: I3f5db0a4f81ac6e9af56d1faaefc2cb107dff597 Reviewed-on: Tested-by: Jenkins Reviewed-by: Michael Stahl <>
8 daystdf#149524: fix crash in Writer after a label has just been createdJulien Nabet1-2/+2
see bt here: Change-Id: Iba461ffe65392a7e0e779f68d1f0737a444ae724 Reviewed-on: Tested-by: Jenkins Tested-by: Heiko Tietze <> Reviewed-by: Heiko Tietze <> Reviewed-by: Xisco Fauli <>
8 dayssw HTML export, XHTML mode: fix lost <li> with a list header + itemMiklos Vajna3-4/+15
There is a general mismatch between XHTML and Writer lists: XHTML can only contain list items (for ordered or unordered lists), while Writer can contain list headers and list items. List headers have no bullet or number at the start, list items are the normal text nodes. Commit 8c2607ae3ce143586e623532b8ae5288277ec3ac (sw HTML export, XHTML mode: fix lost </li> when last list item is not numbered, 2022-02-21) fixed the list item end side of this problem: if all text nodes in a list are headers, then don't write ul/ol at all, otherwise end list headers with </li> as well to make sure the output XML is valid. However, this created a mis-match, the starting <li> for list headers in a list which have non-header text nodes at as was not adapted. Fix the problem by extending OutHTML_SwFormat() so list headers in a list with non-header text nodes always have a <li> and </li>, and this condition is the same on the start/end side. Calculating if at least one text node is non-header in a list may not be cheap, so reuse the already calculated info from OutHTML_NumberBulletListStart() in OutHTML_SwFormat(). Change-Id: I3817a489f16166fc5b4c33ee64e2283c41a4402c Reviewed-on: Reviewed-by: Miklos Vajna <> Tested-by: Jenkins
8 daystdf#149089 snap to grid if IsSnapToChars() is falseMark Hung1-5/+8
for non-CJK scripts. Non Asian text was centered within as many cells as required according to ODF1.2 20.301. But it also required that text should be snapped to grid if style:layout-grid-snap-to is true ( i.e. IsSnapToChars() is false ) per ODF1.2 20.305. That means ODF1.2 20.301 ruled. This patch changes the width of inserted SwKernGridPortion so that non-CJK text aligns to the edge of text grid to make ODF1.2 20.301 rule, an provide more consistent layout result as expected. Change-Id: Id6b4d2b965e20670eb9ddf657d36b8a49073f32a Reviewed-on: Tested-by: Jenkins Reviewed-by: Mark Hung <>
9 daysRelated: tdf#123846 don't auto toggle radiobuttons with left/rightCaolán McNamara1-8/+37
just do the default cursor move, toggle can be triggered with space/return or directly with 0-9 (+ a for 10) Change-Id: I654ca64e49b3a9d4672668553095e971a5c9d1e8 Reviewed-on: Tested-by: Jenkins Reviewed-by: Caolán McNamara <>
9 daysloplugin:moveitNoel Grandin9-26/+26
Change-Id: Ic593974a44d9e327e0385c7ffaaa6d42576ae01a Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
9 daystdf#147084 sw a11y: Ensure focus event gets sent when moving to tableMichael Weghorn1-3/+0
The code responsible for sending an a11y focus event when the cursor moves from elsewhere into e.g. a table cell depends on the fact that the cursor was previously not in that object, i.e. the previous/old cursor/caret position is -1, s. e.g. `SwAccessibleParagraph::InvalidateCursorPos_`. Already setting `m_nOldCaretPos` to the the actual cursor position instead of -1 in the `SwAccessibleParagraph` ctor resulted in that assumption no longer holding when initially moving the cursor into a table (cell), so no focus event would get sent and the NVDA screen reader on Windows would therefore also not refer to the correct a11y object when handling the subsequent CARET_CHANGED event and fail to retrieve the caret position in the previously focused object (because focus/cursor have moved on). Make focus announcement work by only setting `m_nOldCaretPos` to the actual cursor position when processing the corresponding events related to change of cursor position, not in the ctor. Setting the cursor pos already in the ctor had been added to fix an issue with IM handling in commit 817da76529aa39f641d76805d429b09681348811 Date: Sat Nov 8 19:37:22 2014 +0300 fdo#85912 Delete surrounding text failing for input method calls regression. When Apache OpenOffice code was merged in, a few lines were removed for no apparent reason. This just adds the code back in, and resolves the bug. See the comments in fdo#85912 for details about this bug. It is hard for majority language users to reproduce since they don't use ibus/kmfl to type their language's letters. The issue mentioned in the referenced tdf#85912 (== fdo#85912) is not reproducible for me with this change here in place either, neither with the gtk3 VCL plugin nor with kf5 (for which the relevant IM handling has been added in the context of tdf#149255, which has some more information on the ibus/kmfl setup needed to reproduce the original bug). The bug report already mentioned that the issue was reproducible with Linux 13 Mint and LibreOffice, but not Linux 17 Mint with exactly the same LO version, so without being able to analyze this any further, the best explanation I can come up with is that the root cause for tdf#85912 was somewhere else and has been fixed in the meanwhile. In hindsight, comment 5 in tdf#85912 already has further information on why adding the assignment back to the ctor was problematic: > Reviewed OpenOffice code as well. The missing lines exist (but are > commented out) in the current AOO code. The commenting out > occurred when Steven Ying implemented his huge "AOO IA2 enabled draft > version 1" change on 27 Sep 2013. > > > The current AOO comment is > // If this object has the focus, then it is remembered by the map itself. > // not necessary to remember this pos here. Generally, the pos will be updated in invalidateXXX method, which may fire the > //Focus event based on the difference of new & old caret pos. > //nOldCaretPos = GetCaretPos(); Change-Id: If8cd4e92bc1f6233775ccc2834230f3a388ccadb Reviewed-on: Reviewed-by: Justin Luth <> Tested-by: Jenkins Reviewed-by: Michael Weghorn <>
9 daystdf#135976 sw: preserve flys on backspace/delete with redlining enabledMichael Stahl5-6/+47
This is a continuation of commit 85376a02348810812d515ee72140dbf56f2b6040 for the case when redlining is turned on. Also try to restore the anchors in SwUndoRedlineDelete. (regression from commit 3345feb67f2c49a1b76639965b56968e1c5f03ee) Change-Id: I4199f5755398d469a606618c037ad9756cb7aeba Reviewed-on: Tested-by: Jenkins Reviewed-by: Michael Stahl <>
9 dayssw: fix odd m_bCanGroup check in SwUndoRedlineDeleteMichael Stahl1-1/+1
This looks like copypasta, presumably both flags must be true to allow grouping. Change-Id: I96afeac98f94b122a3b1a155940776a3aa44b0a2 Reviewed-on: Tested-by: Jenkins Reviewed-by: Michael Stahl <>
9 dayssw_redlinehide: skip unnecessary updates when undoing redlined deleteMichael Stahl1-0/+6
When reproducing tdf#135976 and then Undo, an UAF crash happens here: assert(!pFrame->GetDrawObjs() || !pObjs->Contains(*pObj)); The pObjs was actually deleted and then re-created, because the pObj was removed from the frame and added again to the same frame. This is a bit unexpected, so prevent it by taking a shortcut in the caller UpdateFramesForRemoveDeleteRedline() to insert a check that had been removed in commit 14e87a4b15d31a34e6053f6194688f3aa23af991. If the rPam is inside a single node, the sw::RedlineUnDelText hint that was sent to the SwTextFrame should be sufficient to update it and the rest of the code in the loop that deals with newly split paragraph can be skipped. Change-Id: I5f36eb91bc20003887ee0bad03ea4a6e67135de9 Reviewed-on: Tested-by: Jenkins Reviewed-by: Michael Stahl <>
9 daystdf#145151 sw IsTableMode GetNumRuleAtCurrCursorPos: unselected cellsJustin Luth1-1/+13
...shouldn't be treated as if the cursor was there. Change-Id: Ida435635aab4442b93f969d6f473aacf3f229e02 Reviewed-on: Tested-by: Jenkins Reviewed-by: Justin Luth <>
10 daysremove unused sw UNO_NAME_CHARACTER_FORMAT_NONEJustin Luth1-2/+1
CharacterFormatNone seems to be orphaned code. Was this ever written out to file? If not, then it should be removable because I don't see anywhere that it can be set. I found this while working on tdf#75297. Change-Id: I3212ab7dcda3c46adfe638ee1ae412a3ede8762c Reviewed-on: Tested-by: Jenkins Reviewed-by: Justin Luth <> Reviewed-by: Michael Stahl <>
10 daystdf#145151 sw IsTableMode SelectionHasNumber: unselected cellsJustin Luth1-55/+44
...shouldn't be checked This followup patch checks the proper cells to see if numbering or bullets are turned on. There is one side effect here. Picture this scenario where you select some paragraphs (_ indicates blank paragraph) _ _ 1. some numbered text _ In this non-empty case, SectionHasNumber is true, showing numbering on in the toolbar. Prior to this patch, the following scenario was "false", showing numbering off in the toolbar. - - 1._ _ and the result was that all the blank lines toggled on. Now it acts just like the non-empty case. Although one can dispute that this is the correct action, consistency is nice... Change-Id: I8a1b8ee0fe947a7bfe7906a0add3aaf2d8e7b232 Reviewed-on: Tested-by: Jenkins Reviewed-by: Justin Luth <>
11 daystdf#148868 sw: handle selection then Insert similar to ReplaceMichael Stahl3-5/+6
... if the selection is inside one paragraph, to avoid deleting flys anchored in the selection. From a code point of view it's a bit inconsistent to do this, but from user point of view there are some ways to conveniently create a selection such as by double clicking a word. (see also tdf#133957) Also in SwWrtShell::AutoCorrect(), which oddly enough might get called with a selection from textsh*.cxx, at least in theory. Change-Id: I8cf9459e5a7ec7754ce8fe323cd158c7e84a5c93 Reviewed-on: Tested-by: Michael Stahl <> Reviewed-by: Michael Stahl <>
11 daystdf#149507 sw: don't delete bookmarks in SwUndoInsLayFormat::UndoImpl()Michael Stahl1-7/+4
The problem is that the CorrAbs() here deletes the bookmarks in the fly, and this isn't supposed to happen at this point, because DelFly() will call SaveSection(), which saves the bookmarks in the m_pHistory via DelContentIndex(), so that they can be re-inserted in Redo/InsFly(). Also change the code that was inserted in commit 0ee28fdf3e9a0bd8763eda6299af1d5c873a9dcf to not call CorrAbs(). (although this bug has existed forever, crashing is a regression from commit 657de5fba12b0e9afcdee361654d2a2d0dbd7311) Change-Id: Iabac0ccf5587d5d974e88cbbc3e05bbaed3526f3 Reviewed-on: Tested-by: Jenkins Reviewed-by: Michael Stahl <>
11 daysRemove some unused includesMiklos Vajna2-2/+0
See tdf#42949 for motivation. Change-Id: I157b331195cc8262e6bd1dcc536cb653587fc45f Reviewed-on: Tested-by: Jenkins Reviewed-by: Miklos Vajna <>
11 daystdf#139982 sw: preserve flys in Replace with redlining enabledMichael Stahl3-3/+12
The problem is that there isn't a redline type "Replace" so it's represented as Delete+Insert. To prevent the flys anchored in the text from being deleted, move the anchors to the point between the old (deleted) and new (inserted) text. (regression from commit 28b77c89dfcafae82cf2a6d85731b643ff9290e5) Change-Id: Ib600c9dbfb9421917e4b8d61195c48cf0b364f06 Reviewed-on: Tested-by: Michael Stahl <> Reviewed-by: Michael Stahl <>
12 dayssw: prefix members of WW8DupProperties, WW8SelBoxInfo, WW8_WrPc and ...Miklos Vajna4-41/+41
... WW8_WrtBookmarks See tdf#94879 for motivation. Change-Id: I4a3ede4c48220fb61ee8ccb4bbfb955a46cf56d0 Reviewed-on: Reviewed-by: Miklos Vajna <> Tested-by: Jenkins
12 daystdf#145151 sw IsTableMode NumRule: unselected cellsJustin Luth1-10/+11
...should not be affected when setting or deleting numbering. This patch depends on follow-up patches to properly detect if numbering is turned on or off in some cases. This patch prevents numbering from "leaking" into the previous cell if the cells were selected backwards. Perhaps it would be better to fix the selection code itself instead of handling all of these edge cases, but doing that might have unintended consequences that I wouldn't have any insight into. So this is safer. Change-Id: I98e18d6056e93a4d89fdbe75b6237daca7832f41 Reviewed-on: Tested-by: Jenkins Reviewed-by: Justin Luth <> Reviewed-by: Miklos Vajna <>
12 daystdf#149509 sw content controls: reject page break insertionMiklos Vajna1-1/+1
Similar to input fields, the intention is to keep the start and end of (inline) content controls within the same text node, so just disable the command in this context, as Word does. Change-Id: Ib797ad164a3a36b4bbde4d686cde29adf6db96bf Reviewed-on: Tested-by: Jenkins Reviewed-by: Miklos Vajna <>
12 dayssw content controls: reject typing inside checkbox or picture content controlsMiklos Vajna2-0/+28
Content controls are editable by default (and not only editable, but also capable of hosting rich text content), and Writer doesn't limit the possibility to edit explicitly, either. Certain content control types (checkbox and picture for now) limit the hosted content though: checkbox overwrites the content on click and picture is meant to host a single as-char anchored image. So far the simple implementation Writer didn't enforce these limits, leading the unexpected behavior when clicking on checkbox content controls (possibly not only a checked/non-checked checkmark was toggled, but other content was removed). Fix the problem by making these content control types read-only: this is what also Word does and this way you can't loose the content when you can't enter it earlier. We may want to also do this for dropdowns in the future, once combo boxes will be supported. Change-Id: I9d44206b3c719a64ec552f2fa0a076901094163e Reviewed-on: Tested-by: Jenkins Reviewed-by: Miklos Vajna <>
13 daysRelated: tdf#125040 NB: rework print preview contextMaxim Monastirsky4-16/+12
Current implementation broadcasts the context change before the new controller was set on the frame (via XFrame::setComponent). This isn't going to work for anything LayoutManager based, as it responds to frame events by recreating all toolbars, so the newly created toolbar won't see the context sent for the old controller. Solve that by delaying the context change to SfxShell::Activate, like anywhere else in the codebase. And make NB listen to frame events, so it could also switch listening to the new controller. Also fixed a crash when switching to print preview in Writer with the navigator in the sidebar being active. Ideally we shouldn't even try to create sidebar panels in print preview, as the sidebar as a whole is disabled. But left that for a future investigation. Change-Id: I07759c676d2a2eb6f752fe778b559b15d2d759ec Reviewed-on: Tested-by: Jenkins Reviewed-by: Maxim Monastirsky <>
14 daysreally fix bigendian buildsRene Engelhard1-1/+1
this time - since I missed to take over one rename between trees. sigh. Continues 089c91b1ad16232f130cb50266732509f83c52eb Change-Id: I726410ab1024b995937952fbce1214866ee8ba19 Reviewed-on: Tested-by: René Engelhard <> Reviewed-by: René Engelhard <>
2022-06-10tdf#75297 sw uno: override default num char style when NONEJustin Luth1-1/+2
The problem was during ODT import. When no text:style-name is provided, or if it is an empty string, then the default "Numbering symbols" character style remained active, preventing the ability to round-trip a NONE char style. Since this depends on the built-in name (and that name can easily enough change) there is not much point in creating a unit test. Change-Id: Id942060abd3e024758f93f3d279ef8b561cfc5a9 Reviewed-on: Reviewed-by: Justin Luth <> Tested-by: Jenkins
2022-06-10tdf#148978: Business Cards in Writer dont show databaseJulien Nabet1-11/+4
+ remove "medium" tab since its goal is exactly what "label" tab does. So now "label" tab is common for "File - New - Business Cards" and "File - New - Labels" Change-Id: I9c7f4e74d7cbc0ffa8ee146a0ef39c87ff5261e3 Reviewed-on: Tested-by: Jenkins Reviewed-by: Julien Nabet <>
2022-06-10tdf#140007 sw: fix SwUndoReplaceMichael Stahl1-2/+3
(regression from commit d6b0e84b236b78f4b21bd16e46dda3fa0876096d) Change-Id: I1facf1584a349d1d087438f4e6fd3a63a80c6f7e Reviewed-on: Tested-by: Jenkins Reviewed-by: Michael Stahl <>
2022-06-10sw XHTML export: avoid writing default transparent background for ReqIFMiklos Vajna1-2/+19
We started writing properties of tables and rows since commit c3c3303516c3da9372dce3f05f38f15a104e961c (sw XHTML export: output table / table row background format using CSS, 2022-05-10). In case the SwTableLine has an explicit SvxBrushItem with its color set to COL_TRANSPARENT, we turn that into a "background: transparent" CSS by default. This is a 1:1 mapping from the doc model, but HTML defaults to this already, so this is considered as noise. Extend IgnorePropertyForReqIF() to filter out these unwanted defaults, and fix SwHTMLWriter::OutCSS1_Property(), because it used to not pass the CSS value for the filter function. The behavior for table cells is unchanged, we continue to not export cell properties (in the ReqIF case) at all. Change-Id: Idbcd07809e159def694f4de017eebc7ad4104575 Reviewed-on: Tested-by: Jenkins Reviewed-by: Miklos Vajna <>
2022-06-10sw doc model xml dump: show table row propertiesMiklos Vajna2-7/+27
Also extract SwTableNode::dumpAsXml() from SwStartNode::dumpAsXml(), ideally dumpAsXml() should only dump own members, not members of other classes. Change-Id: I5ef3e90d0cdd23ba44c192de1802844acad64cc4 Reviewed-on: Tested-by: Jenkins Reviewed-by: Miklos Vajna <>