2025-11-05 Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> [2e51257dc43169dde24cbf0952a039cca96c5272]
tdf#164070 always install en-US UI localization on windows
if en-US is not available, and the user didn't manually configure the UI
language, adding another language (via means of mar updater for example)
can cause that new language being used instead of the language the user
had installed initially since there's no explicit default/fallback.
Since any language that will be added in future is likely to not use a
latin script/will be quite unfamliliar to the user, having en-US to rely
on as a fallback is a much better experience.
The problem occurs on systems where the selected UI language is not
matching the windows language, so for new installations the user has to
go to options and set the language manually. That in turn then will be
an additional safeguard for further updates, since now there's a
language explicitly configured and thus no reason for LO to "guess" what
to use as default.
Change-Id: I67dd9a9ddd9de3ce79eb9144eab06b6f10134c57
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193422
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
(cherry picked from commit 51ccb1ead1c94e695489b1c494e4bf611d8b4b5c)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193426
Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
(cherry picked from commit d74ce83da797b695d6005651f27619eec2077f28)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193430
Tested-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2025-11-05 Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> [5d7c32c486484ebda0ef782b9d4f513e98ab7835]
update credits
Change-Id: Ic382e9bc69385c1eb704341eefb08183cec8d9df
(cherry picked from commit 2be216b83d7e7755a47575b3233fa287603b6fa8)
(cherry picked from commit bed0442907e5d704e9eab81135ea8eade16448fd)
2025-11-05 Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> [61eaebe9d8715fa23d065fbb8b863adb2d2fb751]
Update git submodules
* Update translations from branch 'libreoffice-25-8-3'
to 7da0bbf085f28f0bb8f22602c61d91c174dbc739
- update translations for 25.8.3 rc2
and force-fix errors using pocheck
Change-Id: If22a8d2459b5c47ce71348461ec2a1c9da3727f0
(cherry picked from commit d22ab41bb76904ff6bcbe25ab70ba23bced8f58b)
2025-11-05 Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> [9f487c5074691a45f29e657afe9fa58d55cbdd34]
tdf#114068 allow to translate media control tooltips in navigator pane
tooltips for play/pause/stop/repeat/mute were explicitly flagged as
non-translatable for some reason. There is a media toolbar that has the
same set of controls and there could be a way to share the strings, but
they only are a handful, so not really worth a big refactoring of the UI
files for that.
Change-Id: Ia0e8e2bd664916392049df5cd537d51eb04005d1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192873
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
Tested-by: Jenkins
(cherry picked from commit 74e55a3c756c1f3ce540bf7ab575ca40a334172d)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192912
Reviewed-by: Martin Srebotnjak <miles@filmsi.net>
(cherry picked from commit dae5ca06276383df0799cf2c92df5e2bb8883be2)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193457
Tested-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Related: tdf#168672 ; cid#1642989 Wait without held lock
restore the lock at the end of SerfLockStore::stopTicker
SerfLockStore::removeLockImpl calls this, and that is called
by SerfLockStore::refreshLocks in a loop, so if it was unlocked
at the end of the first loop, then its still unlocked on a 2nd
loop.
Probably doesn't matter as there's only a 2nd unlock attempt
if m_aLockInfoMap.empty() which presumably can only happen once.
2025-11-04 Andreas Heinisch <andreas.heinisch@yahoo.de> [bbd19f18077882d5945063e77f3ae0db3085a934]
tdf#169108 - Create anonymous database range or data
Create anonymous database range or data during the creation of a pivot table. Otherwise, the selection changes to a old autofilter areas and the pivot table cannot be created.
Change-Id: If55b9d1204ab2ce2c3ee9a227bf0dbe1e222dbcb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193096
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
(cherry picked from commit 2a50c7fbb85941a2c50ac01257af36f132b07006)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193137
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
(cherry picked from commit 465e7fddb34fe06d9464ee534c79a02dd72707d4)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193143
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
Resolves: tdf#144343 This isn't used to toggle navigator on/off
but instead contains a SfxBoolItem which specifies if it should
be shown or hidden and ChildWindowExecute takes care of deciding
if that requires Toggling on or off.
Change-Id: I2ad422041bb6f40f5b726111cf5ce35a32c39128
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193339
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
(cherry picked from commit 5e32583e755e877fd1eb68049d6f26d54fd939fe)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193360
Tested-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
tdf#167126: resume ScInputHandler even if error not displayed
problem:
regression from 72bbb0dd4a368dab2b1bd99917cd07d23a92a3f0
when data validity dialog was not displayed, error function returned early
this caused issue with cell invalid data cleaning and it was not possible
to enter new data in any new cell
tdf#168261: resume ScInputHandler even if error not displayed
problem:
regression from 72bbb0dd4a368dab2b1bd99917cd07d23a92a3f0
when data validity dialog was not displayed, error function returned early
this caused issue with cell invalid data cleaning and it was not possible
to enter new data in any new cell
to reproduce:
select data validity as list and also disable error message showing
enter the invalid data in the validity cell
subsequently its not possible to type in any cells
2025-11-04 Mike Kaganski <mike.kaganski@collabora.com> [0dc4cf8c5a8427b249eff0afb8851b9113b023c2]
tdf#165733: fix leap year detection BCE
lcl_isLeapYear used a simple "is divisible" method to check if a given
year is leap. But that didn't take BCE into account: we use historical
numbering system, where before year 0001 was year -0001; and that year
was leap.
Use comphelper::date::getDaysInMonth for that, which is correct, and
also deduplicates the code. Make sure that years beyond sal_Int16 are
considered an error: they are not representable in css::util::Date,
and comphelper::date::getDaysInMonth takes years as sal_Int16.
Change-Id: I34f1ad4d5d03e05a7cf787f9997b04b1d705b583
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193302
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
(cherry picked from commit 97bc8766e297c8d5c22b2f6d4bd7b6d7258782fb)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193314
Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
(cherry picked from commit c96933d95f1eee1018f893dfc08d9b5d52891201)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193327
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
Tested-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2025-11-04 Mike Kaganski <mike.kaganski@collabora.com> [0f23205b390085be25377ff82c1452462e8149bb]
Resolves: tdf#165265 don't autoselect a font style
If nothing was originally selected, then don't pick anything and leave
the combobox empty so the search for style feature doesn't add any
not-explicitly selected font styles by default.
Continue to restore a previously selected style, favouring the last
explicitly selected-by-user style.
Change-Id: Iad04d80305029cc3bbe3e8500ced87085645f9f4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193160
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
(cherry picked from commit e419d3927b62cbc90bbfd0f893adb268af38afdf)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193171
Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
(cherry picked from commit 54aaa6a1e475921573f07d3e5a3a1f22018574bb)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193198
Tested-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2025-11-04 Đoàn Trần Công Danh <congdanhqx@gmail.com> [73b8736a14391fdf6f1310cc226e289333e0cc14]
Fix memory leak with poppler-25.10.0
https://gerrit.libreoffice.org/c/core/+/192743, which fixes ftbfs with
poppler 25.10.0, unfortunately introduced a memory leak when building
with poppler 25.10.0 or later. `pOwnerPasswordStr' and
`pUserPasswordStr' ownership are supposed to be transfered to
`pDocUnique', but is now orphaned.
This change fix that said memory leak.
Change-Id: I545d461c07f033b41a4276665483b44fa401a3bd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192645
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
(cherry picked from commit 89841fc69446a597b24b978344cd3c8d656aae09)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192934
(cherry picked from commit 1d15201503d2d17ddede4aade0ef4666e64f862b)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192948
Tested-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
Tested-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
Regression from
commit 43e511e642a2ce7026b30ea5c212940ff3eb522e
Author: Tibor Nagy <tibor.nagy.extern@allotropia.de>
Date: Fri Nov 29 02:10:21 2024 +0100
tdf#88226 sd: fix cutting off the overflow text on the notes print page
2025-11-03 Mike Kaganski <mike.kaganski@collabora.com> [25a24b99856a9725567fde096e7e11f0a3539ce4]
tdf#168314: check if xGraphic is empty, not Any
Regression after commit 9d6e1594a298c9d41f3dc64ad80edf4b9868c2e8
(Deduplicate and unify using vcl::GetBitmap, 2024-11-08).
An Any with an empty graphic is not itself empty; such an any caused
the outer check to succeed, and therefore its 'else' branch never
executed, when it ought to.
Change-Id: I97115c7f7dbab4ec54b5e999e4b47ecdc8874e47
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193161
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
(cherry picked from commit a8216f500c223797b13976678924b76c5effec65)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193170
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
(cherry picked from commit da6b70633ac6bf78ce0a68022518396a2c650970)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193184
Tested-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-11-03 Stephan Bergmann <stephan.bergmann@collabora.com> [1fc462b65dd9656b576de716ceeb223eca4da76f]
Fix presumed | vs. & typos
...introduced in 25e08e4ea0df956f46bd7ef81493fcf5a5c1879c "Resolves: tdf#164920
add scrollbar width to desired size if enabled" and causing
> svx/source/tbxctrls/linectrl.cxx:435:15: error: bitwise or with non-zero value always evaluates to true [-Werror,-Wtautological-bitwise-compare]
> 435 | if (nBits | WB_VSCROLL)
> | ~~~~~~^~~~~~~~~~~~
> svx/source/tbxctrls/linectrl.cxx:576:15: error: bitwise or with non-zero value always evaluates to true [-Werror,-Wtautological-bitwise-compare]
> 576 | if (nBits | WB_VSCROLL)
> | ~~~~~~^~~~~~~~~~~~
Change-Id: I6f77cd30f3b98abb15afb665b336fba13d46ee01
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192963
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
(cherry picked from commit ad6e817e38545903f5fbbe11a2dcb033e5affead)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192968
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
(cherry picked from commit 656a79ed1365851e7f8b0f3dacb29321c0264b6b)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193021
Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2025-10-24 Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> [96d44dad3c06fe2decfacea5d4dccf4b6e9bdfd0]
update credits
Change-Id: Id71076a39bde8f6c01283e207773f80b3acbb6e2
(cherry picked from commit b65b00d904f8ae1c84c9dbdd9e6629080aee858a)
(cherry picked from commit 216c31600970374b12a5f2aaf6d9f91098e1aa4c)
2025-10-22 Mike Kaganski <mike.kaganski@collabora.com> [e6875a474b394a9d01bd6c05414d8e704f8bb29a]
tdf#168980: don't use shape Z-order to identify shapes
The problem was wrong identification of the shape type, because of
unreliable use of fragile Z-order.
XMLShapeExport::exportShape used xShape's Z-order to get the info
collected for current xShape. Value of Z-order is calculated in
SwXShape::getPropertyValue; it takes into account text boxes of
shapes, which affects the correction in SwTextBoxHelper::getOrdNum.
The correction results in several different objects returning the
same Z-order. And in the specific document, the information that
was collected for a rectangle object, was used for an object of
different type.
Instead of trying to find a smart way to continue using Z-order,
this change uses XShape itself as the key into the map of info,
similar to how XShapes objects are used as keys into ShapesInfos.
tdf#168371: Disable ligatures in Impress/Draw with character spacing
I added a new parameter to TextSimplePortionPrimitive2D constructor, and
rTextFillColor that previously was using the default value had now to be
explicitly set, but I should have used COL_TRANSPARENT as that is the
default.
tdf#166319 sw interdependent redlines: fix redo of direct reject for format
Open the bugdoc, select the format part of the insert-then-format
redline in the manage changes dialog, reject, undo, redo: the result is
<ins>AAA</ins>BBB<ins>CCC</ins> instead of one big insert redline.
Similarly, open the other bugdoc with a delete and a format redline in
it, select the format part of the delete-then-format redline in the
manage changes dialog, reject, undo, redo: the result is
<del>AAA</del><format>BBB</format><del>CCC</del> instead of one big
delete redline.
What happens is that the UI action uses
sw::DocumentRedlineManager::RejectRedlineRange(), while the redo uses
sw::DocumentRedlineManager::RejectRedline(), and while the first
supported direct accepts, the later did not.
Fix the problem by:
1) In sw::DocumentRedlineManager::RejectRedlineRange(), create the undo
action with the correct depth & directness for direct rejects
2) In DocumentRedlineManager::RejectRedline(), use use
lcl_RejectOuterFormat() to directly reject a format redline instead
of the usual lcl_AcceptRejectRedl(), which gives us matching behavior
for the UI action & the redo.
Writer's interdependent redlines are now in a reasonable state with
this: actions for the redline under cursor work with ins/del when
possible (looking "through" format); while the manage changes dialog
still allows working on the format redline directly if that's wanted.
tdf#166319 sw interdependent redlines: fix redo of accept for fmt on ins/del
The bugdoc has <ins>AA<format>BB</format>CC</ins> content, accepting the
BB part "directly (via the sidebar or the manage changes dialog, so you
accept the format, not the underlying insert), then undo, then redo
resulted in <ins>AA</ins><format>BB</format><ins>CC</ins> instead of a
single insert, as expected.
What happens is that the UI action uses
sw::DocumentRedlineManager::AcceptRedlineRange(), while the redo uses
sw::DocumentRedlineManager::AcceptRedline(), and while the first
supported direct accepts, the later did not.
Fix the problem by:
1) Extending SwUndoRedline with a flag to know if the accept/reject to
be performed by redo should be a direct action or not
2) Fixing sw::DocumentRedlineManager::AcceptRedlineRange() to create an
undo action with the correct depth (should be 0, was 1) & save the
direct flag into the undo action
3) In sw::DocumentRedlineManager::AcceptRedline(), use
lcl_AcceptOuterFormat() to accept a format redline directly instead
of the usual lcl_AcceptRejectRedl().
This also fixes the case where you have a format on top of a delete
(instead of an insert).
tdf#166319 sw interdependent redlines: allow accept/reject for fmt on ins/del
When a format redline is on top of an insert/delete and the uno command
is dispatched to accept/reject the redline under cursor, then we always
interact with the insert/delete, ignoring the format. This is usually
wanted, but now there is no way to interact with the format redline,
even if you would explicitly ask for it.
Notice that the manage changes dialog/sidebar has a separate row for the
format redline and the ins/del redline under it (at the same document
model position), so that gives us a way to select the format redline
explicitly and interact with it.
Implement this by adding a "direct" mode to the edit shell's
AcceptRedline() / RejectRedline().
With this, all of the (insert or delete) then format, (accept or reject)
on it case works in direct mode. Undo also works, redo still needs
fixing.
2025-10-20 Mike Kaganski <mike.kaganski@collabora.com> [b2947edc956ebd42b994ff08a96ec0fa43a2ec90]
tdf#164677: separator properties in XMLTextColumnsPropertyHandler::equals
When collecting autostyles, each added autostyle is compared with the
already added ones. If all the properties match, new autostyle is not
added, but an existing one is used.
For text columns, the comparison procedure only compared things defined
in XTextColumns interface, and ignored all properties of TextColumns
service - so, styles only differing in those properties were considered
identical, and only the first of them was saved and used for all cases.
This had never been implemented properly; all versions I tested, did the
same, so I doubt it was a regression. But indeed, it was a bug.
2025-10-20 Mike Kaganski <mike.kaganski@collabora.com> [05d1d307e83431f2e1e649ffe3c1f0854b44d13a]
tdf#168673: approx equality threshold no less than 1/2 15th significand
01:26,47 is 0.001000810185185185, which has 16 significant decimals. It
is converted to string as "0.00100081018518519" (15 significands).
The problem was, that when criterion "=0.00100081018518519" is used to
check value 0.001000810185185185, the two numbers differ in five least
significant bits, but rtl_math_approxEqual uses 0x1p-48 to ignore last
four bits only. This is a common problem for numbers close to 1.0E(N).
This change introduces a second threshold, in addition to "only take
into account 48 signigicant bits of mantissa": it calculates the value
of half of 15th decimal unit of the smaller absolute value, and uses
the greater of the two thresholds for the approximate equality.
tdf#165615 sw floattable, no overlap: avoid check against an own follow
Load the bugdoc, the layuot loop control kicks in:
warn:sw.layout:20117:20117:sw/source/core/layout/tabfrm.cxx:1853: LoopControl in SwContentFrame::CalcLowers
and then the content is laid out on 3 pages, while it fits 2 pages in
Word.
What happens is that the document has an inline table, then a floating
table inside that. The inner floating table has tblOverlap set to
'never', and then things go wrong in
SwToContentAnchoredObjectPosition::CalcOverlap().
Fix the problem by checking if the two overlapping fly frames are
actually next to each other in a split fly chain: if we're the precede
of the other fly, then no need to worry about the overlap, that follow
fly will move to the next page anyway.
In theory this would be also interesting for toplevel floating tables,
too -- but in practice CppunitTest_sw_core_layout's testSplitFlyHeader
shows doing this in general would need more work, so just do this for
floating tables which are inside tables.
tdf#162730 sw floattable: fix when inside an inline table, with hide mark
Open the bugdoc, it has an outer inline table, then an inner floating
table. The inner table is split, but both parts of it stay on page 1,
leading to overlapping text.
This document's outer table has a single row and a single cell, but the
cell has a <w:hideMark> property. If that's missing, the inner floating
table is split properly.
Fix the problem by ignoring <w:hideMark> in case the cell's only content
is a floating table: in this case setting the row's size type to "fix"
would not be correct anyway.
Regression from commit 2d43c34333076fad092f0cdc0f60f81580acdbee
(Related: tdf#55160 sw floattable, nested DOCX imp: fix inner tbl at
cell start, 2023-09-15).
2025-10-20 Mike Kaganski <mike.kaganski@collabora.com> [80850b7d086e2b0fc7f792130cce951d5d946573]
tdf#167326: Let CalcHeightWithFlys take hidden frame state into account
Table cells use that function to calculate the min cell height. In the
bugdoc, sections inside a cell contained flys, and were hidden. When
the min cell height was calculated, the sections' flys were considered,
despite they were hidden.
2025-10-20 Jonathan Clark <jonathan@libreoffice.org> [768b67b1b727d93134dba1efd624000b57b653a2]
tdf#166044 sw: Fix cont. footnotes repeating the dest page number
Fixes an issue causing Writer to print the destination page number twice
in footnotes with continuation notices that end in non-Latin text.
This was happening due to subtle mismanagement of the m_bHasFollow flag.
Continuation notices rely on this flag being unset to indicate the field
portion responsible for printing the destination page number, but the
layout algorithm was leaving this flag unset on two different portions.
In Latin-only documents, this bug was hidden by SwLineLayout::CalcLine()
removing the second portion, but this isn't possible when a script
change is involved.
Regression since commit 6c0105307efa15837e9e5287103995312f373b67
(sw: fix stale SwNumberPortion follow flag)
Change-Id: I94c6f7ca75a3cf844d3eff2640d63777ac026717
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192464
Tested-by: Jenkins
Reviewed-by: Jonathan Clark <jonathan@libreoffice.org>
(cherry picked from commit 23a0a5d5d2d004c85e6230040d4d1475e79f48fc)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192726
Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2025-10-20 Mike Kaganski <mike.kaganski@collabora.com> [aa690147e302325bfbdc44c1fada42e7c59966e5]
tdf#168777: Trailing space must show all decorations, also for ODF
Commit 853e13f9146e83b959bc53152ec103470d55fb4f (tdf#57187: make sure
to put trailing blanks to hole portion in narrow lines, 2023-12-30)
caused a regression, where trailing whitespace lost its decorations.
Commit a877c6ce97f73906c39cf800bc61d7d99847361c (tdf#164487: Introduce
"Show underline" MS Word compatibility option, 2025-02-26) took care
of the Word compatibility case, and introduced a compatibility flag
matching respective flag in Word. It only handled underline, as the
flag name in Word implied.
It turns out, that (1) Word's flag, despite its name, controls all
decorations of trailing writespace (highlignting, strike-out); and
(2) before the original commit, Writer's default was to show all the
decorations as well. Which means, that there is only one case when
the decorations must be omitted: if "Word-compatible trailing blanks"
is enabled, but "Underline Word-compatible trailing blanks" is off.
This change is intended to show trailing space's underline, overline,
strike-out, border, and highlighting correctly.
2025-10-20 Jonathan Clark <jonathan@libreoffice.org> [13c6bc02d4c60e6aa35ae2145db431cfe8ae6dba]
tdf#72341 sw: Make inc/dec font size affect all scripts
This change updates the FN_GROW_FONT_SIZE and FN_SHRINK_FONT_SIZE
handlers to scale fonts for all script types, even if the
currently-selected text does not contain a particular type.
This fixes the reported issue that bullets in RTL context are not
resized if a selected list item does not contain CTL characters. This
also fixes the broader issue of inserted text not reflecting earlier
size changes, simply because the script type for that inserted text
wasn't present at the time.
2025-10-20 Mike Kaganski <mike.kaganski@collabora.com> [05a0f70a417dbe71ca7b580d6e62c0a7977a0c72]
Some DDE fixes
It seems that some DDE code was virtually never tested in our CI.
That resulted in several unnoticed regressions.
In commit 81b954718f0cdac6873927e869b3e41f863562e7
(loplugin:unnecessaryvirtuals, 2015-06-09), DdeService::MakeTopic
was made non-virtual. That broke its use on Windows, where a derived
class used to override that method (which of course didn't use the
'override' keyvord, hence went unnoticed).
In commit 88e3b846b8a4bd4ce5507d1bc5441ee4167e5326 (remove some dead
bits of DDE, 2016-04-06), DdeService::MakeTopic was finally dropped.
In commit c026b936404bd052fc74283d3cc2e0727ec4edb9 (no need to
allocate SfxDdeDocTopics_Impl separately, 2023-02-28), a check in
SfxApplication::AddDdeTopic was changed from testing if pDocTopics
were initialized to checking if they are empty. The new test made
adding anything to the vector impossible.
This change tried to make it functional again, and adds a (Windows-
only) unit test.
To enable unit test, we need an app name, so that DDE is initialized
properly. Also, ImplDdeService::MakeTopic had a condition to exit
early, when !Application::IsInExecute(). Here we allow to add it, if
unit test is running.
SfxDdeDocTopic_Impl::Put ismodified to store OUString to the Any -
see ScByteSequenceToString::GetString. Without the change, UTF-16
was treated as 8-bit-encoded string.
theDdeInstData in svl/source/svdde/ddecli.cxx is now not a pointer,
bus a function-local static. No need to delete it: it has nothing
that needs to be released. Before, it could get destroyed too early,
preventing DDE from working.
DdeConnection::~DdeConnection could reliably deadlock, when it had
a connection to the server in the same process; processEventsToIdle
is called now to avoid that.
DdeData ctor taking OUString is fixed: xImp->nData is bytes, not
characters.
sc: fix crash in SparklineGroupsContext::onCharacters()
Fixes this assertion failure in a crash report:
/opt/rh/devtoolset-12/root/usr/include/c++/12/bits/stl_vector.h:1230: constexpr std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::back() [with _Tp = oox::xls::Sparkline; _Alloc = std::allocator<oox::xls::Sparkline>; reference = oox::xls::Sparkline&]: Assertion '!this->empty()' failed.
Backtrace from gdb on the core:
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1 0x00007f906206e7f1 in __GI_abort () at abort.c:79
#2 0x0000000000af43ee in std::__glibcxx_assert_fail(char const*, int, char const*, char const*) ()
#3 0x00007f904d07ff87 in std::vector<oox::xls::Sparkline, std::allocator<oox::xls::Sparkline> >::back (this=<optimized out>)
at /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/stl_vector.h:1228
#4 std::vector<oox::xls::Sparkline, std::allocator<oox::xls::Sparkline> >::back (this=<optimized out>) at /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/stl_vector.h:1228
#5 oox::xls::SparklineGroupsContext::onCharacters(rtl::OUString const&) ()
at sc/source/filter/oox/SparklineFragment.cxx:232
#6 0x00007f905cf0988a in oox::core::ContextHandler2Helper::processCollectedChars() ()
at include/rtl/ustring.hxx:546
#7 0x00007f905cf09a05 in oox::core::ContextHandler2Helper::implEndElement (nElement=3475622, this=0x7f902403e880)
at oox/source/core/contexthandler2.cxx:123
gdb also points out that m_aSparklineGroups is non-empty.