avmedia/source/framework/mediaitem.cxx                      |    2 
 basctl/source/basicide/sbxitem.cxx                          |    4 
 chart2/source/inc/DataSeriesHelper.hxx                      |    5 
 chart2/source/tools/DataSeriesHelper.cxx                    |   39 +
 chart2/source/view/main/ExplicitValueProvider.cxx           |   17 
 comphelper/source/container/embeddedobjectcontainer.cxx     |   19 
 compilerplugins/clang/mustoverride.cxx                      |  104 ++
 compilerplugins/clang/test/mustoverride.cxx                 |   28 
 cui/source/options/cfgchart.cxx                             |    2 
 cui/source/options/cfgchart.hxx                             |    1 
 cui/source/options/connpoolsettings.cxx                     |    2 
 cui/source/options/connpoolsettings.hxx                     |    2 
 cui/source/options/dbregistersettings.cxx                   |    2 
 cui/source/options/dbregistersettings.hxx                   |    2 
 dbaccess/source/ui/dlg/DbAdminImpl.cxx                      |    2 
 dbaccess/source/ui/dlg/dsnItem.hxx                          |    1 
 dbaccess/source/ui/dlg/optionalboolitem.cxx                 |    2 
 dbaccess/source/ui/dlg/optionalboolitem.hxx                 |    1 
 dbaccess/source/ui/inc/stringlistitem.hxx                   |    1 
 dbaccess/source/ui/misc/stringlistitem.cxx                  |    2 
 download.lst                                                |   12 
 editeng/source/items/bulitem.cxx                            |    2 
 editeng/source/items/charhiddenitem.cxx                     |    2 
 editeng/source/items/flditem.cxx                            |    4 
 editeng/source/items/frmitems.cxx                           |   54 -
 editeng/source/items/justifyitem.cxx                        |   10 
 editeng/source/items/numitem.cxx                            |    8 
 editeng/source/items/optitems.cxx                           |    2 
 editeng/source/items/paraitem.cxx                           |   24 
 editeng/source/items/textitem.cxx                           |   69 -
 editeng/source/items/writingmodeitem.cxx                    |    2 
 editeng/source/items/xmlcnitm.cxx                           |    2 
 external/gpgmepp/ExternalPackage_gpgmepp.mk                 |    4 
 include/avmedia/mediaitem.hxx                               |    1 
 include/basctl/sbxitem.hxx                                  |    1 
 include/comphelper/embeddedobjectcontainer.hxx              |    3 
 include/editeng/adjustitem.hxx                              |    1 
 include/editeng/autokernitem.hxx                            |    2 
 include/editeng/blinkitem.hxx                               |    1 
 include/editeng/boxitem.hxx                                 |    2 
 include/editeng/brushitem.hxx                               |    1 
 include/editeng/bulletitem.hxx                              |    1 
 include/editeng/charhiddenitem.hxx                          |    1 
 include/editeng/charreliefitem.hxx                          |    1 
 include/editeng/charrotateitem.hxx                          |    5 
 include/editeng/charscaleitem.hxx                           |    2 
 include/editeng/cmapitem.hxx                                |    1 
 include/editeng/colritem.hxx                                |    1 
 include/editeng/contouritem.hxx                             |    2 
 include/editeng/crossedoutitem.hxx                          |    1 
 include/editeng/emphasismarkitem.hxx                        |    2 
 include/editeng/escapementitem.hxx                          |    1 
 include/editeng/fhgtitem.hxx                                |    1 
 include/editeng/flditem.hxx                                 |    1 
 include/editeng/flstitem.hxx                                |    1 
 include/editeng/fontitem.hxx                                |    1 
 include/editeng/forbiddenruleitem.hxx                       |    1 
 include/editeng/formatbreakitem.hxx                         |    3 
 include/editeng/frmdiritem.hxx                              |    1 
 include/editeng/hngpnctitem.hxx                             |    1 
 include/editeng/hyphenzoneitem.hxx                          |    1 
 include/editeng/justifyitem.hxx                             |    3 
 include/editeng/keepitem.hxx                                |    2 
 include/editeng/kernitem.hxx                                |    2 
 include/editeng/langitem.hxx                                |    7 
 include/editeng/lineitem.hxx                                |    1 
 include/editeng/lrspitem.hxx                                |    7 
 include/editeng/lspcitem.hxx                                |    1 
 include/editeng/nhypitem.hxx                                |    1 
 include/editeng/numitem.hxx                                 |    1 
 include/editeng/opaqitem.hxx                                |    3 
 include/editeng/optitems.hxx                                |    2 
 include/editeng/orphitem.hxx                                |    2 
 include/editeng/paravertalignitem.hxx                       |    2 
 include/editeng/pbinitem.hxx                                |    4 
 include/editeng/pgrditem.hxx                                |    1 
 include/editeng/pmdlitem.hxx                                |    2 
 include/editeng/postitem.hxx                                |    1 
 include/editeng/prntitem.hxx                                |    3 
 include/editeng/protitem.hxx                                |    3 
 include/editeng/rsiditem.hxx                                |    3 
 include/editeng/scriptspaceitem.hxx                         |    1 
 include/editeng/scripttypeitem.hxx                          |    1 
 include/editeng/shaditem.hxx                                |    1 
 include/editeng/shdditem.hxx                                |    2 
 include/editeng/sizeitem.hxx                                |    3 
 include/editeng/spltitem.hxx                                |    2 
 include/editeng/tstpitem.hxx                                |    1 
 include/editeng/twolinesitem.hxx                            |    1 
 include/editeng/udlnitem.hxx                                |    6 
 include/editeng/ulspitem.hxx                                |    1 
 include/editeng/wghtitem.hxx                                |    1 
 include/editeng/widwitem.hxx                                |    2 
 include/editeng/writingmodeitem.hxx                         |    1 
 include/editeng/wrlmitem.hxx                                |    2 
 include/editeng/xmlcnitm.hxx                                |    2 
 include/filter/msfilter/escherex.hxx                        |    2 
 include/sfx2/app.hxx                                        |    3 
 include/sfx2/dinfdlg.hxx                                    |    1 
 include/sfx2/evntconf.hxx                                   |    4 
 include/sfx2/frame.hxx                                      |    4 
 include/sfx2/minfitem.hxx                                   |    1 
 include/sfx2/objitem.hxx                                    |    1 
 include/sfx2/objsh.hxx                                      |    5 
 include/sfx2/tabdlg.hxx                                     |    1 
 include/sfx2/tplpitem.hxx                                   |    1 
 include/sfx2/viewfrm.hxx                                    |    3 
 include/sfx2/watermarkitem.hxx                              |    1 
 include/sfx2/zoomitem.hxx                                   |    2 
 include/svl/cenumitm.hxx                                    |    3 
 include/svl/cintitem.hxx                                    |   24 
 include/svl/eitem.hxx                                       |   13 
 include/svl/flagitem.hxx                                    |    5 
 include/svl/globalnameitem.hxx                              |    1 
 include/svl/grabbagitem.hxx                                 |    1 
 include/svl/hint.hxx                                        |    2 
 include/svl/ilstitem.hxx                                    |    1 
 include/svl/imageitm.hxx                                    |    1 
 include/svl/int64item.hxx                                   |    1 
 include/svl/intitem.hxx                                     |   33 
 include/svl/lckbitem.hxx                                    |    1 
 include/svl/macitem.hxx                                     |    3 
 include/svl/metitem.hxx                                     |    5 
 include/svl/poolitem.hxx                                    |  122 ++-
 include/svl/ptitem.hxx                                      |    1 
 include/svl/rectitem.hxx                                    |    1 
 include/svl/rngitem.hxx                                     |    1 
 include/svl/setitem.hxx                                     |    7 
 include/svl/slstitm.hxx                                     |    1 
 include/svl/srchitem.hxx                                    |    1 
 include/svl/stritem.hxx                                     |   10 
 include/svl/visitem.hxx                                     |    3 
 include/svl/voiditem.hxx                                    |    1 
 include/svx/RectangleAlignmentItem.hxx                      |    1 
 include/svx/SmartTagItem.hxx                                |    1 
 include/svx/algitem.hxx                                     |    2 
 include/svx/chrtitem.hxx                                    |    5 
 include/svx/clipfmtitem.hxx                                 |    1 
 include/svx/drawitem.hxx                                    |    7 
 include/svx/e3ditem.hxx                                     |    1 
 include/svx/galleryitem.hxx                                 |    1 
 include/svx/grfcrop.hxx                                     |    6 
 include/svx/hlnkitem.hxx                                    |    3 
 include/svx/numinf.hxx                                      |    2 
 include/svx/ofaitem.hxx                                     |    2 
 include/svx/optgrid.hxx                                     |    3 
 include/svx/pageitem.hxx                                    |    2 
 include/svx/postattr.hxx                                    |    8 
 include/svx/rotmodit.hxx                                    |    1 
 include/svx/rulritem.hxx                                    |    5 
 include/svx/sdangitm.hxx                                    |    5 
 include/svx/sdasitm.hxx                                     |    1 
 include/svx/sdgcpitm.hxx                                    |    5 
 include/svx/sdggaitm.hxx                                    |    4 
 include/svx/sdgluitm.hxx                                    |    8 
 include/svx/sdgmoitm.hxx                                    |    4 
 include/svx/sdmetitm.hxx                                    |    5 
 include/svx/sdooitm.hxx                                     |    5 
 include/svx/sdprcitm.hxx                                    |   10 
 include/svx/sdtaaitm.hxx                                    |    3 
 include/svx/sdtacitm.hxx                                    |    3 
 include/svx/sdtaditm.hxx                                    |    3 
 include/svx/sdtaiitm.hxx                                    |    6 
 include/svx/sdtaitm.hxx                                     |    8 
 include/svx/sdtakitm.hxx                                    |    3 
 include/svx/sdtayitm.hxx                                    |    3 
 include/svx/sdtfchim.hxx                                    |    2 
 include/svx/sdtfsitm.hxx                                    |    3 
 include/svx/sdynitm.hxx                                     |    5 
 include/svx/statusitem.hxx                                  |    1 
 include/svx/svx3ditems.hxx                                  |   13 
 include/svx/svxgraphicitem.hxx                              |    1 
 include/svx/sxcecitm.hxx                                    |   12 
 include/svx/sxcgitm.hxx                                     |    3 
 include/svx/sxcllitm.hxx                                    |    6 
 include/svx/sxctitm.hxx                                     |    3 
 include/svx/sxekitm.hxx                                     |    3 
 include/svx/sxelditm.hxx                                    |    4 
 include/svx/sxenditm.hxx                                    |   18 
 include/svx/sxmbritm.hxx                                    |    3 
 include/svx/sxmtfitm.hxx                                    |    9 
 include/svx/sxmtpitm.hxx                                    |    6 
 include/svx/sxmtritm.hxx                                    |    6 
 include/svx/sxmuitm.hxx                                     |    3 
 include/svx/viewlayoutitem.hxx                              |    2 
 include/svx/xbtmpit.hxx                                     |    3 
 include/svx/xcolit.hxx                                      |    9 
 include/svx/xfillit0.hxx                                    |    1 
 include/svx/xfilluseslidebackgrounditem.hxx                 |    1 
 include/svx/xflasit.hxx                                     |    1 
 include/svx/xflbckit.hxx                                    |    1 
 include/svx/xflbmpit.hxx                                    |    1 
 include/svx/xflbmsli.hxx                                    |    1 
 include/svx/xflbmsxy.hxx                                    |    2 
 include/svx/xflbmtit.hxx                                    |    1 
 include/svx/xflboxy.hxx                                     |    2 
 include/svx/xflbstit.hxx                                    |    1 
 include/svx/xflbtoxy.hxx                                    |    2 
 include/svx/xflclit.hxx                                     |    3 
 include/svx/xflftrit.hxx                                    |    1 
 include/svx/xflgrit.hxx                                     |   15 
 include/svx/xflhtit.hxx                                     |    3 
 include/svx/xfltrit.hxx                                     |    1 
 include/svx/xftadit.hxx                                     |    1 
 include/svx/xftdiit.hxx                                     |    1 
 include/svx/xftmrit.hxx                                     |    1 
 include/svx/xftouit.hxx                                     |    2 
 include/svx/xftshcit.hxx                                    |    3 
 include/svx/xftshit.hxx                                     |    1 
 include/svx/xftshxy.hxx                                     |    3 
 include/svx/xftstit.hxx                                     |    2 
 include/svx/xgrscit.hxx                                     |    1 
 include/svx/xit.hxx                                         |    7 
 include/svx/xlineit0.hxx                                    |    1 
 include/svx/xlinjoit.hxx                                    |    1 
 include/svx/xlnasit.hxx                                     |    1 
 include/svx/xlncapit.hxx                                    |    1 
 include/svx/xlnclit.hxx                                     |    3 
 include/svx/xlndsit.hxx                                     |    3 
 include/svx/xlnedcit.hxx                                    |    1 
 include/svx/xlnedit.hxx                                     |    1 
 include/svx/xlnedwit.hxx                                    |    1 
 include/svx/xlnstcit.hxx                                    |    1 
 include/svx/xlnstit.hxx                                     |    1 
 include/svx/xlnstwit.hxx                                    |    1 
 include/svx/xlntrit.hxx                                     |    1 
 include/svx/xlnwtit.hxx                                     |    1 
 include/svx/xsflclit.hxx                                    |    1 
 include/svx/xtextit0.hxx                                    |    2 
 include/svx/zoomslideritem.hxx                              |    2 
 include/vcl/svapp.hxx                                       |    5 
 oox/source/export/shapes.cxx                                |   28 
 sc/inc/attrib.hxx                                           |   13 
 sc/inc/defaultsoptions.hxx                                  |    1 
 sc/inc/docoptio.hxx                                         |    1 
 sc/inc/formulaopt.hxx                                       |    1 
 sc/inc/printopt.hxx                                         |    1 
 sc/inc/viewopti.hxx                                         |    1 
 sc/qa/unit/data/ods/RowHeightTdf165003.ods                  |binary
 sc/qa/unit/subsequent_filters_test4.cxx                     |   23 
 sc/source/core/data/attrib.cxx                              |   42 -
 sc/source/core/data/column2.cxx                             |    8 
 sc/source/core/tool/defaultsoptions.cxx                     |    2 
 sc/source/core/tool/docoptio.cxx                            |    2 
 sc/source/core/tool/formulaopt.cxx                          |    2 
 sc/source/core/tool/printopt.cxx                            |    2 
 sc/source/core/tool/viewopti.cxx                            |    2 
 sc/source/filter/excel/xistyle.cxx                          |   21 
 sc/source/ui/app/uiitems.cxx                                |   22 
 sc/source/ui/inc/uiitems.hxx                                |    9 
 sd/qa/unit/data/odp/tdf164775.odp                           |binary
 sd/qa/unit/export-tests-ooxml3.cxx                          |   12 
 sd/source/ui/app/optsitem.cxx                               |    8 
 sd/source/ui/inc/optsitem.hxx                               |    3 
 sfx2/inc/sorgitm.hxx                                        |    1 
 sfx2/source/control/minfitem.cxx                            |    2 
 sfx2/source/control/sorgitm.cxx                             |    2 
 sfx2/source/control/statcach.cxx                            |   39 -
 sfx2/source/dialog/dinfdlg.cxx                              |    2 
 sfx2/source/dialog/tabdlg.cxx                               |    2 
 sfx2/source/dialog/tplpitem.cxx                             |    2 
 sfx2/source/doc/objitem.cxx                                 |    2 
 sfx2/source/doc/watermarkitem.cxx                           |    2 
 sfx2/source/doc/zoomitem.cxx                                |    2 
 sfx2/source/view/frame.cxx                                  |   10 
 solenv/CompilerTest_compilerplugins_clang.mk                |    1 
 svl/source/items/flagitem.cxx                               |    4 
 svl/source/items/globalnameitem.cxx                         |    4 
 svl/source/items/grabbagitem.cxx                            |    6 
 svl/source/items/ilstitem.cxx                               |    6 
 svl/source/items/imageitm.cxx                               |    2 
 svl/source/items/int64item.cxx                              |    2 
 svl/source/items/intitem.cxx                                |    4 
 svl/source/items/itemset.cxx                                |   58 -
 svl/source/items/lckbitem.cxx                               |    2 
 svl/source/items/poolitem.cxx                               |  464 ------------
 svl/source/items/ptitem.cxx                                 |    4 
 svl/source/items/rectitem.cxx                               |    4 
 svl/source/items/rngitem.cxx                                |    2 
 svl/source/items/sitem.cxx                                  |   10 
 svl/source/items/slstitm.cxx                                |    4 
 svl/source/items/srchitem.cxx                               |    2 
 svl/source/items/voiditem.cxx                               |    4 
 svx/inc/AffineMatrixItem.hxx                                |    1 
 svx/inc/sdgcoitm.hxx                                        |   12 
 svx/inc/sdginitm.hxx                                        |    4 
 svx/inc/sdgtritm.hxx                                        |    4 
 svx/inc/sxallitm.hxx                                        |   12 
 svx/inc/sxcaitm.hxx                                         |    3 
 svx/inc/sxcikitm.hxx                                        |    3 
 svx/inc/sxfiitm.hxx                                         |    5 
 svx/inc/sxlayitm.hxx                                        |    8 
 svx/inc/sxlogitm.hxx                                        |    6 
 svx/inc/sxmfsitm.hxx                                        |    3 
 svx/inc/sxmkitm.hxx                                         |    3 
 svx/inc/sxmoitm.hxx                                         |    3 
 svx/inc/sxmovitm.hxx                                        |    6 
 svx/inc/sxmsitm.hxx                                         |    3 
 svx/inc/sxmtaitm.hxx                                        |    6 
 svx/inc/sxoneitm.hxx                                        |   12 
 svx/inc/sxopitm.hxx                                         |    6 
 svx/inc/sxreaitm.hxx                                        |    6 
 svx/inc/sxreoitm.hxx                                        |    6 
 svx/inc/sxroaitm.hxx                                        |    3 
 svx/inc/sxrooitm.hxx                                        |    3 
 svx/inc/sxsaitm.hxx                                         |    3 
 svx/inc/sxsalitm.hxx                                        |    6 
 svx/inc/sxsiitm.hxx                                         |    6 
 svx/inc/sxsoitm.hxx                                         |    6 
 svx/inc/sxtraitm.hxx                                        |   12 
 svx/inc/xftshtit.hxx                                        |    1 
 svx/source/dialog/rulritem.cxx                              |   18 
 svx/source/dialog/svxgraphicitem.cxx                        |    2 
 svx/source/engine3d/svx3ditems.cxx                          |   30 
 svx/source/items/RectangleAlignmentItem.cxx                 |    2 
 svx/source/items/SmartTagItem.cxx                           |    2 
 svx/source/items/algitem.cxx                                |    8 
 svx/source/items/chrtitem.cxx                               |   10 
 svx/source/items/clipfmtitem.cxx                            |    2 
 svx/source/items/customshapeitem.cxx                        |    4 
 svx/source/items/drawitem.cxx                               |   28 
 svx/source/items/e3ditem.cxx                                |    2 
 svx/source/items/galleryitem.cxx                            |    2 
 svx/source/items/grfitem.cxx                                |    9 
 svx/source/items/hlnkitem.cxx                               |    2 
 svx/source/items/numinf.cxx                                 |    8 
 svx/source/items/ofaitem.cxx                                |    4 
 svx/source/items/pageitem.cxx                               |    2 
 svx/source/items/postattr.cxx                               |    4 
 svx/source/items/rotmodit.cxx                               |    2 
 svx/source/items/statusitem.cxx                             |    2 
 svx/source/items/viewlayoutitem.cxx                         |    2 
 svx/source/items/zoomslideritem.cxx                         |    2 
 svx/source/svdraw/svdattr.cxx                               |    2 
 svx/source/unodraw/UnoGraphicExporter.cxx                   |    4 
 svx/source/unodraw/UnoNameItemTable.cxx                     |    5 
 svx/source/xoutdev/xattr.cxx                                |  119 +--
 svx/source/xoutdev/xattr2.cxx                               |   38 
 svx/source/xoutdev/xattrbmp.cxx                             |    4 
 sw/inc/BorderCacheOwner.hxx                                 |    1 
 sw/inc/ccoll.hxx                                            |    1 
 sw/inc/cellatr.hxx                                          |    3 
 sw/inc/fchrfmt.hxx                                          |    1 
 sw/inc/fmtanchr.hxx                                         |    1 
 sw/inc/fmtautofmt.hxx                                       |    4 
 sw/inc/fmtclbl.hxx                                          |    3 
 sw/inc/fmtclds.hxx                                          |    1 
 sw/inc/fmtcnct.hxx                                          |    3 
 sw/inc/fmtcntnt.hxx                                         |    1 
 sw/inc/fmtcol.hxx                                           |    5 
 sw/inc/fmteiro.hxx                                          |    3 
 sw/inc/fmtflcnt.hxx                                         |    1 
 sw/inc/fmtfld.hxx                                           |    1 
 sw/inc/fmtfollowtextflow.hxx                                |    4 
 sw/inc/fmtfordr.hxx                                         |    1 
 sw/inc/fmtfsize.hxx                                         |    1 
 sw/inc/fmtftn.hxx                                           |    5 
 sw/inc/fmtftntx.hxx                                         |    6 
 sw/inc/fmthdft.hxx                                          |    2 
 sw/inc/fmtinfmt.hxx                                         |    1 
 sw/inc/fmtline.hxx                                          |    1 
 sw/inc/fmtlsplt.hxx                                         |    3 
 sw/inc/fmtmeta.hxx                                          |    1 
 sw/inc/fmtornt.hxx                                          |    2 
 sw/inc/fmtpdsc.hxx                                          |    1 
 sw/inc/fmtrfmrk.hxx                                         |    8 
 sw/inc/fmtrowsplt.hxx                                       |    3 
 sw/inc/fmtruby.hxx                                          |    1 
 sw/inc/fmtsrnd.hxx                                          |    1 
 sw/inc/fmturl.hxx                                           |    1 
 sw/inc/fmtwrapinfluenceonobjpos.hxx                         |    1 
 sw/inc/format.hxx                                           |    1 
 sw/inc/formatcontentcontrol.hxx                             |    1 
 sw/inc/formatflysplit.hxx                                   |    1 
 sw/inc/formatlinebreak.hxx                                  |    1 
 sw/inc/formatwraptextatflystart.hxx                         |    1 
 sw/inc/grfatr.hxx                                           |   36 
 sw/inc/hfspacingitem.hxx                                    |    3 
 sw/inc/hintids.hxx                                          |    4 
 sw/inc/hints.hxx                                            |   24 
 sw/inc/ndtxt.hxx                                            |    4 
 sw/inc/paratr.hxx                                           |   11 
 sw/inc/swevent.hxx                                          |   26 
 sw/inc/tgrditem.hxx                                         |    1 
 sw/inc/tox.hxx                                              |    1 
 sw/inc/txtatr.hxx                                           |    1 
 sw/qa/extras/ooxmlexport/data/tdf164176.docx                |binary
 sw/qa/extras/ooxmlexport/ooxmlexport21.cxx                  |   15 
 sw/qa/extras/unowriter/data/tdf164921.odt                   |binary
 sw/qa/extras/unowriter/unowriter.cxx                        |   44 +
 sw/source/core/attr/BorderCacheOwner.cxx                    |   10 
 sw/source/core/attr/calbck.cxx                              |    6 
 sw/source/core/attr/cellatr.cxx                             |    8 
 sw/source/core/attr/fmtwrapinfluenceonobjpos.cxx            |    2 
 sw/source/core/attr/format.cxx                              |   71 +
 sw/source/core/attr/formatflysplit.cxx                      |    2 
 sw/source/core/attr/formatwraptextatflystart.cxx            |    2 
 sw/source/core/attr/hints.cxx                               |    9 
 sw/source/core/crsr/bookmark.cxx                            |    8 
 sw/source/core/crsr/crsrsh.cxx                              |   11 
 sw/source/core/doc/acmplwrd.cxx                             |    4 
 sw/source/core/doc/docfmt.cxx                               |    4 
 sw/source/core/doc/docftn.cxx                               |    5 
 sw/source/core/doc/docnum.cxx                               |   19 
 sw/source/core/doc/docredln.cxx                             |    2 
 sw/source/core/doc/fmtcol.cxx                               |  137 +--
 sw/source/core/doc/lineinfo.cxx                             |    9 
 sw/source/core/doc/notxtfrm.cxx                             |    9 
 sw/source/core/doc/number.cxx                               |   10 
 sw/source/core/doc/visiturl.cxx                             |    2 
 sw/source/core/docnode/node.cxx                             |   63 -
 sw/source/core/docnode/section.cxx                          |   41 -
 sw/source/core/draw/dcontact.cxx                            |   15 
 sw/source/core/fields/docufld.cxx                           |    6 
 sw/source/core/fields/reffld.cxx                            |    6 
 sw/source/core/graphic/grfatr.cxx                           |    6 
 sw/source/core/inc/cntfrm.hxx                               |    1 
 sw/source/core/inc/flyfrm.hxx                               |    1 
 sw/source/core/inc/frame.hxx                                |    1 
 sw/source/core/inc/pagefrm.hxx                              |    1 
 sw/source/core/inc/sectfrm.hxx                              |    1 
 sw/source/core/inc/unofootnote.hxx                          |    3 
 sw/source/core/inc/unorefmark.hxx                           |    2 
 sw/source/core/layout/atrfrm.cxx                            |   74 +
 sw/source/core/layout/fly.cxx                               |  199 +++--
 sw/source/core/layout/flyincnt.cxx                          |    7 
 sw/source/core/layout/flylay.cxx                            |    7 
 sw/source/core/layout/pagechg.cxx                           |  214 +++--
 sw/source/core/layout/pagedesc.cxx                          |    8 
 sw/source/core/layout/sectfrm.cxx                           |  121 +--
 sw/source/core/layout/ssfrm.cxx                             |    7 
 sw/source/core/layout/tabfrm.cxx                            |    5 
 sw/source/core/layout/wsfrm.cxx                             |  138 ++-
 sw/source/core/objectpositioning/anchoredobjectposition.cxx |    2 
 sw/source/core/ole/ndole.cxx                                |    5 
 sw/source/core/para/paratr.cxx                              |    4 
 sw/source/core/table/swtable.cxx                            |    6 
 sw/source/core/text/txtfrm.cxx                              |   11 
 sw/source/core/tox/tox.cxx                                  |   19 
 sw/source/core/txtnode/atrfld.cxx                           |   38 
 sw/source/core/txtnode/atrflyin.cxx                         |    2 
 sw/source/core/txtnode/atrftn.cxx                           |   21 
 sw/source/core/txtnode/atrref.cxx                           |   24 
 sw/source/core/txtnode/attrcontentcontrol.cxx               |   21 
 sw/source/core/txtnode/attrlinebreak.cxx                    |   12 
 sw/source/core/txtnode/fmtatr2.cxx                          |   55 -
 sw/source/core/txtnode/ndtxt.cxx                            |  186 +++-
 sw/source/core/txtnode/thints.cxx                           |    3 
 sw/source/core/txtnode/txtatr2.cxx                          |   48 -
 sw/source/core/txtnode/txtedt.cxx                           |    3 
 sw/source/core/undo/untbl.cxx                               |    4 
 sw/source/core/unocore/unochart.cxx                         |    2 
 sw/source/core/unocore/unofield.cxx                         |    3 
 sw/source/core/unocore/unoftn.cxx                           |   11 
 sw/source/core/unocore/unoidx.cxx                           |    8 
 sw/source/core/unocore/unoobj.cxx                           |    3 
 sw/source/core/unocore/unorefmk.cxx                         |   14 
 sw/source/filter/basflt/fltshell.cxx                        |   19 
 sw/source/filter/html/swhtml.hxx                            |    2 
 sw/source/filter/inc/fltshell.hxx                           |    7 
 sw/source/filter/ww8/ww8par2.cxx                            |    2 
 sw/source/uibase/chrdlg/ccoll.cxx                           |    2 
 sw/source/uibase/config/cfgitems.cxx                        |   20 
 sw/source/uibase/dialog/swwrtshitem.cxx                     |    2 
 sw/source/uibase/envelp/envimg.cxx                          |    2 
 sw/source/uibase/envelp/labimg.cxx                          |    2 
 sw/source/uibase/inc/cfgitems.hxx                           |    8 
 sw/source/uibase/inc/envimg.hxx                             |    1 
 sw/source/uibase/inc/labimg.hxx                             |    1 
 sw/source/uibase/inc/swwrtshitem.hxx                        |    1 
 sw/source/uibase/inc/uiitems.hxx                            |    4 
 sw/source/uibase/utlui/uiitems.cxx                          |    8 
 sw/source/writerfilter/dmapper/SettingsTable.cxx            |    4 
 vcl/source/app/svapp.cxx                                    |    8 
 vcl/source/gdi/pdfwriter_impl.cxx                           |    6 
 vcl/win/gdi/salnativewidgets-luna.cxx                       |   11 
 winaccessibility/source/UAccCOM/MAccessible.cxx             |   10 
 wizards/source/scriptforge/SF_Services.xba                  |   85 --
 xmloff/source/chart/SchXMLExport.cxx                        |    9 
 xmloff/source/draw/shapeexport.cxx                          |    4 
 xmloff/source/forms/layerexport.cxx                         |   14 
 481 files changed, 2675 insertions(+), 2042 deletions(-)

New commits:
commit 6d643dff88aea5a0eccce223e5aae552006ec3f2
Author:     Oliver Specht <[email protected]>
AuthorDate: Wed Jan 29 12:38:55 2025 +0100
Commit:     Andras Timar <[email protected]>
CommitDate: Wed Feb 12 20:15:08 2025 +0100

    tdf#164921 Renaming list styles fixed
    
    User defined list styles are now correctly updated in paragraph
    styles that are using them and only directly applied to paragraphs
    that had a direct formating before.
    
    Change-Id: I9b671655ffa430d643c48fc35f15f38b41de4b9b
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180892
    Reviewed-by: Gabor Kelemen <[email protected]>
    Tested-by: Gabor Kelemen <[email protected]>
    Tested-by: Jenkins
    (cherry picked from commit fe1a74c68b892d01bf5d8be9aed90c12c5bf6abd)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181465

diff --git a/sw/qa/extras/unowriter/data/tdf164921.odt 
b/sw/qa/extras/unowriter/data/tdf164921.odt
new file mode 100644
index 000000000000..b24b4b6f3299
Binary files /dev/null and b/sw/qa/extras/unowriter/data/tdf164921.odt differ
diff --git a/sw/qa/extras/unowriter/unowriter.cxx 
b/sw/qa/extras/unowriter/unowriter.cxx
index abcda606ec69..4618fd6bb362 100644
--- a/sw/qa/extras/unowriter/unowriter.cxx
+++ b/sw/qa/extras/unowriter/unowriter.cxx
@@ -47,6 +47,7 @@
 #include <comphelper/processfactory.hxx>
 #include <comphelper/propertysequence.hxx>
 #include <comphelper/compbase.hxx>
+#include <unotools/mediadescriptor.hxx>
 
 #include <wrtsh.hxx>
 #include <ndtxt.hxx>
@@ -1516,6 +1517,49 @@ CPPUNIT_TEST_FIXTURE(SwUnoWriter, testTdf164885)
     CPPUNIT_ASSERT_EQUAL(u".uno:Open"_ustr, 
interceptor->pDispatch->sLastCommand);
 }
 
+CPPUNIT_TEST_FIXTURE(SwUnoWriter, testTdf164921)
+{
+    // check renaming list style
+    OUString sChangedListStyle = u"ChangedListStyle"_ustr;
+
+    {
+        createSwDoc("tdf164921.odt");
+        //change list style name
+        //auto xModel = mxComponent.queryThrow<frame::XModel>();
+        uno::Reference<style::XStyleFamiliesSupplier> xSFS(mxComponent, 
uno::UNO_QUERY);
+        uno::Reference<container::XNameContainer> xListStyles(
+            xSFS->getStyleFamilies()->getByName(u"NumberingStyles"_ustr), 
uno::UNO_QUERY);
+        uno::Reference<container::XNamed> 
xListStyle(xListStyles->getByName(u"NewListStyle"_ustr),
+                                                     uno::UNO_QUERY);
+        xListStyle->setName(sChangedListStyle);
+
+        utl::MediaDescriptor aMediaDescriptor;
+        aMediaDescriptor[u"FilterName"_ustr] <<= u"writer8"_ustr;
+        uno::Reference<frame::XStorable> const xStorable(mxComponent, 
uno::UNO_QUERY);
+        xStorable->storeToURL(maTempFile.GetURL(), 
aMediaDescriptor.getAsConstPropertyValueList());
+    }
+    {
+        saveAndReload(u"writer8"_ustr);
+
+        uno::Reference<style::XStyleFamiliesSupplier> xSFS(mxComponent, 
uno::UNO_QUERY);
+        uno::Reference<container::XNameContainer> xListStyles(
+            xSFS->getStyleFamilies()->getByName(u"NumberingStyles"_ustr), 
uno::UNO_QUERY);
+        uno::Reference<container::XNamed> xNewListStyle(
+            xListStyles->getByName(u"ChangedListStyle"_ustr), uno::UNO_QUERY);
+
+        CPPUNIT_ASSERT_EQUAL(xNewListStyle->getName(), sChangedListStyle);
+
+        uno::Reference<container::XNameContainer> xParaStyles(
+            xSFS->getStyleFamilies()->getByName(u"ParagraphStyles"_ustr), 
uno::UNO_QUERY);
+        uno::Reference<beans::XPropertySet> 
xBodyTextStyle(xParaStyles->getByName("Text body"),
+                                                           uno::UNO_QUERY);
+
+        rtl::OUString sListStyleName;
+        xBodyTextStyle->getPropertyValue(u"NumberingStyleName"_ustr) >>= 
sListStyleName;
+        CPPUNIT_ASSERT_EQUAL(sListStyleName, sChangedListStyle);
+    }
+}
+
 } // end of anonymous namespace
 CPPUNIT_PLUGIN_IMPLEMENT();
 
diff --git a/sw/source/core/doc/docnum.cxx b/sw/source/core/doc/docnum.cxx
index afbdfe7b63dc..c33c4fd77e49 100644
--- a/sw/source/core/doc/docnum.cxx
+++ b/sw/source/core/doc/docnum.cxx
@@ -1232,12 +1232,27 @@ bool SwDoc::RenameNumRule(const OUString & rOldName, 
const OUString & rNewName,
         pNumRule->GetTextNodeList( aTextNodeList );
 
         pNumRule->SetName( rNewName, getIDocumentListsAccess() );
-
         SwNumRuleItem aItem(rNewName);
 
+        const size_t nArrLen = GetTextFormatColls()->size();
+        for( size_t i = 0; i < nArrLen; i++ )
+        {
+            SwTextFormatColl* pColl = (*GetTextFormatColls())[ i ];
+            const SwAttrSet& rAttrSet = pColl->GetAttrSet();
+
+            const SfxPoolItem* pTempItem = nullptr;
+            if (SfxItemState::SET == rAttrSet.GetItemState(RES_PARATR_NUMRULE, 
false, &pTempItem))
+            {
+                const SwNumRuleItem* pNumItem = static_cast<const 
SwNumRuleItem*>(pTempItem);
+                if (pNumItem->GetValue().equals(rOldName))
+                    pColl->SetFormatAttr( aItem );
+            }
+        }
+
         for ( SwTextNode* pTextNd : aTextNodeList )
         {
-            pTextNd->SetAttr(aItem);
+            if (SfxItemState::SET == 
pTextNd->GetSwAttrSet().GetItemState(RES_PARATR_NUMRULE, false))
+                pTextNd->SetAttr(aItem);
         }
 
         bResult = true;
commit 76fda4007e799a28cced521d034f31e1b2c790b3
Author:     Oliver Specht <[email protected]>
AuthorDate: Thu Dec 5 07:48:10 2024 +0100
Commit:     Andras Timar <[email protected]>
CommitDate: Wed Feb 12 20:15:08 2025 +0100

    tdf#164176 Import multiline document variable with break
    
    Converts the '_x000d_' or '_x000d__x000a_' to a paragraph break in docx 
import.
    
    Change-Id: Ib8b5203338e987028279711928d3aecb9cedd836
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177838
    Tested-by: Jenkins
    Reviewed-by: Gabor Kelemen <[email protected]>
    Tested-by: Gabor Kelemen <[email protected]>
    (cherry picked from commit 9647aded124c17e97db1bf7bb071136c7f91cb90)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181438

diff --git a/sw/qa/extras/ooxmlexport/data/tdf164176.docx 
b/sw/qa/extras/ooxmlexport/data/tdf164176.docx
new file mode 100644
index 000000000000..2d93cfd3765d
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf164176.docx differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport21.cxx 
b/sw/qa/extras/ooxmlexport/ooxmlexport21.cxx
index 5ba9a7f02ff2..3f806154d257 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport21.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport21.cxx
@@ -17,6 +17,8 @@
 #include <com/sun/star/text/XDocumentIndex.hpp>
 #include <com/sun/star/text/XTextTable.hpp>
 #include <com/sun/star/text/XTextField.hpp>
+#include <com/sun/star/text/XTextFieldsSupplier.hpp>
+#include <com/sun/star/table/XCellRange.hpp>
 #include <com/sun/star/style/LineSpacing.hpp>
 #include <com/sun/star/style/LineSpacingMode.hpp>
 #include <com/sun/star/packages/zip/ZipFileAccess.hpp>
@@ -1203,6 +1205,19 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf146269)
     }
 }
 
+DECLARE_OOXMLEXPORT_TEST(testTdf164176, "tdf164176.docx")
+{
+    uno::Reference<text::XTextFieldsSupplier> xTextFieldsSupplier(mxComponent, 
uno::UNO_QUERY);
+    uno::Reference<container::XEnumerationAccess> xFieldsAccess(
+        xTextFieldsSupplier->getTextFields());
+    uno::Reference<container::XEnumeration> 
xFields(xFieldsAccess->createEnumeration());
+
+    uno::Reference<text::XTextField> 
xEnumerationAccess1(xFields->nextElement(), uno::UNO_QUERY);
+    rtl::OUString sPresentation = 
xEnumerationAccess1->getPresentation(true).trim();
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(-1), sPresentation.indexOf("_x000d_"));
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(-1), sPresentation.indexOf("_x000a_"));
+}
+
 } // end of anonymous namespace
 CPPUNIT_PLUGIN_IMPLEMENT();
 
diff --git a/sw/source/writerfilter/dmapper/SettingsTable.cxx 
b/sw/source/writerfilter/dmapper/SettingsTable.cxx
index b4bf82541484..7ec07453d4f6 100644
--- a/sw/source/writerfilter/dmapper/SettingsTable.cxx
+++ b/sw/source/writerfilter/dmapper/SettingsTable.cxx
@@ -215,7 +215,9 @@ void SettingsTable::lcl_attribute(Id nName, const Value & 
val)
         m_pImpl->m_aDocVars.back().first = sStringValue;
         break;
     case NS_ooxml::LN_CT_DocVar_val:
-        m_pImpl->m_aDocVars.back().second = sStringValue;
+        m_pImpl->m_aDocVars.back().second =
+            sStringValue.replaceAll("_x000d__x000a_", "
")
+            .replaceAll("_x000d_", "
");
         break;
     case NS_ooxml::LN_CT_CompatSetting_name:
         m_pImpl->m_aCurrentCompatSettingName = sStringValue;
commit 2610e031bd670505add1f2b003fd0584fd10c435
Author:     Oliver Specht <[email protected]>
AuthorDate: Wed Jan 22 16:39:25 2025 +0100
Commit:     Andras Timar <[email protected]>
CommitDate: Wed Feb 12 20:15:08 2025 +0100

    tdf#151278 tdf#164724 tdf#164728 tdf#164729 switch off charts number format
    
    from source
    
    Labels get their number format usually from source. When copy/pasted
    the chart has no connection to a source format anymore.
    The related LinkNumberFormatToSource flag is therefore reset.
    The label (data series) number format used is now also saved.
    
    Change-Id: I640083ec0036f116dec94cc982317e1e7992328b
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180600
    Tested-by: Gabor Kelemen <[email protected]>
    Reviewed-by: Gabor Kelemen <[email protected]>
    Tested-by: Jenkins
    (cherry picked from commit e72919a30132cabeb3e3fda2f9ce16688e9f40eb)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181277

diff --git a/chart2/source/inc/DataSeriesHelper.hxx 
b/chart2/source/inc/DataSeriesHelper.hxx
index 2015398a7681..29555c692221 100644
--- a/chart2/source/inc/DataSeriesHelper.hxx
+++ b/chart2/source/inc/DataSeriesHelper.hxx
@@ -43,6 +43,7 @@ namespace chart { class DataSource; }
 namespace chart { class Diagram; }
 namespace chart { class DataSeries; }
 namespace chart { class LabeledDataSequence; }
+namespace chart { class ChartModel; }
 
 namespace chart::DataSeriesHelper
 {
@@ -185,6 +186,10 @@ void deleteDataLabelsFromSeriesAndAllPoints( const 
rtl::Reference< ::chart::Data
 UNLESS_MERGELIBS(OOO_DLLPUBLIC_CHARTTOOLS)
 void deleteDataLabelsFromPoint( const css::uno::Reference< 
css::beans::XPropertySet >& xPointPropertySet );
 
+UNLESS_MERGELIBS(OOO_DLLPUBLIC_CHARTTOOLS)
+sal_Int32 getExplicitNumberFormatKeyForDataLabel(
+    const css::uno::Reference< css::beans::XPropertySet >& xPointPropertySet);
+
 } //  namespace chart::DataSeriesHelper
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/chart2/source/tools/DataSeriesHelper.cxx 
b/chart2/source/tools/DataSeriesHelper.cxx
index 202b67395c83..baba1a530294 100644
--- a/chart2/source/tools/DataSeriesHelper.cxx
+++ b/chart2/source/tools/DataSeriesHelper.cxx
@@ -675,6 +675,45 @@ void deleteDataLabelsFromPoint( const Reference< 
beans::XPropertySet >& xPointPr
     }
 }
 
+sal_Int32 getExplicitNumberFormatKeyForDataLabel(
+    const uno::Reference<beans::XPropertySet>& xSeriesOrPointProp)
+{
+    rtl::Reference< ::chart::DataSeries > xDataSeries( 
dynamic_cast<DataSeries*>(xSeriesOrPointProp.get()) );
+    sal_Int32 nFormat = 0;
+    if (!xDataSeries.is())
+        return nFormat;
+    try
+    {
+
+        bool bLinkToSource = true;
+        xDataSeries->getPropertyValue(CHART_UNONAME_LINK_TO_SRC_NUMFMT) >>= 
bLinkToSource;
+        xDataSeries->getPropertyValue(CHART_UNONAME_NUMFMT) >>= nFormat;
+
+        if (bLinkToSource && xDataSeries->getDataSequences().getLength())
+        {
+            Reference<data::XLabeledDataSequence> xLabeledSeq(
+                xDataSeries->getDataSequences()[0]);
+            if( xLabeledSeq.is() )
+            {
+                Reference< data::XDataSequence > xSeq( 
xLabeledSeq->getValues());
+                if( xSeq.is() )
+                {
+                    nFormat = xSeq->getNumberFormatKeyByIndex( -1 );
+                }
+            }
+
+        }
+    }
+    catch (const beans::UnknownPropertyException&)
+    {
+    }
+
+    if (nFormat < 0)
+        nFormat = 0;
+    return nFormat;
+
+}
+
 } //  namespace chart
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/chart2/source/view/main/ExplicitValueProvider.cxx 
b/chart2/source/view/main/ExplicitValueProvider.cxx
index 5aa8fadcd77d..c34fe64cce65 100644
--- a/chart2/source/view/main/ExplicitValueProvider.cxx
+++ b/chart2/source/view/main/ExplicitValueProvider.cxx
@@ -26,6 +26,7 @@
 #include <BaseCoordinateSystem.hxx>
 #include <TitleHelper.hxx>
 #include <ObjectIdentifier.hxx>
+#include <DataSeriesHelper.hxx>
 
 #include <comphelper/servicehelper.hxx>
 #include <comphelper/diagnose_ex.hxx>
@@ -78,21 +79,7 @@ sal_Int32 
ExplicitValueProvider::getExplicitNumberFormatKeyForAxis(
 sal_Int32 ExplicitValueProvider::getExplicitNumberFormatKeyForDataLabel(
     const uno::Reference<beans::XPropertySet>& xSeriesOrPointProp)
 {
-    sal_Int32 nFormat = 0;
-    if (!xSeriesOrPointProp.is())
-        return nFormat;
-
-    try
-    {
-        xSeriesOrPointProp->getPropertyValue(CHART_UNONAME_NUMFMT) >>= nFormat;
-    }
-    catch (const beans::UnknownPropertyException&)
-    {
-    }
-
-    if (nFormat < 0)
-        nFormat = 0;
-    return nFormat;
+    return 
DataSeriesHelper::getExplicitNumberFormatKeyForDataLabel(xSeriesOrPointProp);
 }
 
 sal_Int32 
ExplicitValueProvider::getExplicitPercentageNumberFormatKeyForDataLabel(
diff --git a/comphelper/source/container/embeddedobjectcontainer.cxx 
b/comphelper/source/container/embeddedobjectcontainer.cxx
index 2e5e311e997a..7c01ee23bd92 100644
--- a/comphelper/source/container/embeddedobjectcontainer.cxx
+++ b/comphelper/source/container/embeddedobjectcontainer.cxx
@@ -486,19 +486,19 @@ bool EmbeddedObjectContainer::StoreEmbeddedObject(
         if ( xPersist.is() )
         {
             uno::Sequence < beans::PropertyValue > aSeq;
+            auto aObjArgs(::comphelper::InitPropertySequence({
+                { "SourceShellID", uno::Any(rSrcShellID) },
+                { "DestinationShellID", uno::Any(rDestShellID) }
+            }));
             if ( bCopy )
             {
-                auto aObjArgs(::comphelper::InitPropertySequence({
-                    { "SourceShellID", uno::Any(rSrcShellID) },
-                    { "DestinationShellID", uno::Any(rDestShellID) }
-                }));
                 xPersist->storeToEntry(pImpl->mxStorage, rName, aSeq, 
aObjArgs);
             }
             else
             {
                 //TODO/LATER: possible optimization, don't store immediately
                 //xPersist->setPersistentEntry( pImpl->mxStorage, rName, 
embed::EntryInitModes::ENTRY_NO_INIT, aSeq, aSeq );
-                xPersist->storeAsEntry( pImpl->mxStorage, rName, aSeq, aSeq );
+                xPersist->storeAsEntry( pImpl->mxStorage, rName, aSeq, 
aObjArgs );
                 xPersist->saveCompleted( true );
             }
         }
@@ -512,11 +512,14 @@ bool EmbeddedObjectContainer::StoreEmbeddedObject(
 
     return true;
 }
-
-bool EmbeddedObjectContainer::InsertEmbeddedObject( const uno::Reference < 
embed::XEmbeddedObject >& xObj, OUString& rName )
+bool EmbeddedObjectContainer::InsertEmbeddedObject( const uno::Reference < 
embed::XEmbeddedObject >& xObj, OUString& rName,
+        OUString const* pTargetShellID )
 {
     // store it into the container storage
-    if (StoreEmbeddedObject(xObj, rName, false, OUString(), OUString()))
+    OUString sTargetShellID;
+    if (pTargetShellID)
+        sTargetShellID = *pTargetShellID;
+    if (StoreEmbeddedObject(xObj, rName, false, OUString(), sTargetShellID))
     {
         // remember object
         AddEmbeddedObject( xObj, rName );
diff --git a/include/comphelper/embeddedobjectcontainer.hxx 
b/include/comphelper/embeddedobjectcontainer.hxx
index 8c75718dce35..a847f1e1b55d 100644
--- a/include/comphelper/embeddedobjectcontainer.hxx
+++ b/include/comphelper/embeddedobjectcontainer.hxx
@@ -109,7 +109,8 @@ public:
                         OUString const* pBaseURL = nullptr );
 
     // insert an embedded object into the container - objects persistent 
representation will be added to the storage
-    bool            InsertEmbeddedObject( const css::uno::Reference < 
css::embed::XEmbeddedObject >&, OUString& );
+    bool            InsertEmbeddedObject( const css::uno::Reference < 
css::embed::XEmbeddedObject >&, OUString&,
+        OUString const* pTargetShellID = nullptr);
 
     // load an embedded object from a MediaDescriptor and insert it into the 
container
     // a new object will be created from the new content and returned
diff --git a/sw/source/core/ole/ndole.cxx b/sw/source/core/ole/ndole.cxx
index 26dbd086f8c1..20cef31053a3 100644
--- a/sw/source/core/ole/ndole.cxx
+++ b/sw/source/core/ole/ndole.cxx
@@ -957,7 +957,10 @@ void SwOLEObj::SetNode( SwOLENode* pNode )
     if ( xChild.is() && xChild->getParent() != p->GetModel() )
         // it is possible that the parent was set already
         xChild->setParent( p->GetModel() );
-    if (!p->GetEmbeddedObjectContainer().InsertEmbeddedObject( 
m_xOLERef.GetObject(), aObjName ) )
+    rtl::OUString sTargetShellID = 
SfxObjectShell::CreateShellID(rDoc.GetDocShell());
+
+    if (!p->GetEmbeddedObjectContainer().InsertEmbeddedObject( 
m_xOLERef.GetObject(), aObjName,
+        &sTargetShellID) )
     {
         OSL_FAIL( "InsertObject failed" );
         if ( xChild.is() )
diff --git a/xmloff/source/chart/SchXMLExport.cxx 
b/xmloff/source/chart/SchXMLExport.cxx
index 91b203bc2d42..198f6a14c4e3 100644
--- a/xmloff/source/chart/SchXMLExport.cxx
+++ b/xmloff/source/chart/SchXMLExport.cxx
@@ -2433,7 +2433,7 @@ void SchXMLExportHelper_Impl::exportAxis(
         lcl_exportNumberFormat( u"NumberFormat"_ustr, rAxisProps, mrExport );
         aPropertyStates = mxExpPropMapper->Filter(mrExport, rAxisProps);
 
-        if (!maSrcShellID.isEmpty() && !maDestShellID.isEmpty() && 
maSrcShellID != maDestShellID)
+        if (!maDestShellID.isEmpty() && (!maSrcShellID.isEmpty() || 
maSrcShellID != maDestShellID))
         {
             // Disable link to source number format property when pasting to
             // a different doc shell.  These shell ID's should be both empty
@@ -2850,6 +2850,13 @@ void SchXMLExportHelper_Impl::exportSeries(
 
                                 if( mxExpPropMapper.is())
                                     aPropertyStates = 
mxExpPropMapper->Filter(mrExport, xPropSet);
+                                if (!maDestShellID.isEmpty() && 
(!maSrcShellID.isEmpty() || maSrcShellID != maDestShellID))
+                                {
+                                    // Disable link to source number format 
property when pasting to
+                                    // a different doc shell.  These shell 
ID's should be both empty
+                                    // during real ODF export.
+                                    disableLinkedNumberFormat(aPropertyStates, 
mxExpPropMapper->getPropertySetMapper());
+                                }
                             }
 
                             if( bExportContent )
commit 1149d9075da5694e39053aab9ad18e95aff8784c
Author:     Jean-Pierre Ledure <[email protected]>
AuthorDate: Tue Feb 11 17:43:34 2025 +0100
Commit:     Andras Timar <[email protected]>
CommitDate: Wed Feb 12 20:15:08 2025 +0100

    ScriptForge (SF_Services) fix tdf#165147 do not require JRE
    
    When a user script invokes CreateScriptService()
    for a not yet used library, ScriptForge loads
    the library and searches for the list of
    services provided by that library.
    
    The list can be found in a specific method
    that the library must contain,
      RegisterScriptServices()
    in whatever module.
    
    The exploration was done so far through a
    ScriptProvider UNO service. This service includes
    all programming languages, including Java,
    even without Java being used. This caused
    an inconvenient error message when Java
    is disabled in the advanced options.
    
    This service is now replaced by a
      com.sun.star.comp.scripting.ScriptProviderForBasic
    service. This gives a direct access to a lower
    branch of the scripts tree and skips the Java issue.
    
    All the changes are done in the
      ScriptForge.SF_Services._FindModuleFrom Method()
    function.
    
    No change required in the user documentation.
    
    Change-Id: I4a6820e5d1a379bf5b61c6077db8a9a382c1757d
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181445
    Tested-by: Jenkins
    Reviewed-by: Jean-Pierre Ledure <[email protected]>
    (cherry picked from commit ff298dfebcd5a6772de53d075e960bddcd4aff46)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181482
    Reviewed-by: Mike Kaganski <[email protected]>

diff --git a/wizards/source/scriptforge/SF_Services.xba 
b/wizards/source/scriptforge/SF_Services.xba
index ffada4653d2c..ba43968c7ce4 100644
--- a/wizards/source/scriptforge/SF_Services.xba
+++ b/wizards/source/scriptforge/SF_Services.xba
@@ -357,69 +357,54 @@ Private Function _FindModuleFromMethod(ByVal psLibrary As 
String _
 &apos;&apos;&apos;     Returns:
 &apos;&apos;&apos;             The name of the module or a zero-length string 
if not found
 
+Dim oBasic As Object                                   &apos;  
com.sun.star.comp.scripting.ScriptProviderForBasic
 Dim vCategories As Variant                             &apos;  
&quot;user&quot; or &quot;share&quot; library categories
 Dim sCategory As String
-Dim vLanguages As Variant                              &apos;  
&quot;Basic&quot;, &quot;Python&quot;, ... programming languages
-Dim sLanguage As String
 Dim vLibraries As Variant                              &apos;  Library names
 Dim sLibrary As String
 Dim vModules As Variant                                        &apos;  Module 
names
 Dim sModule As String                                  &apos;  Return value
-Dim vMethods As Variant                                        &apos;  
Method/properties/subs/functions
+Dim vMethods As Variant                                        &apos;  
Methods/properties/subs/functions
 Dim sMethod As String
-Dim oRoot As Object                                            &apos;  
com.sun.star.script.browse.BrowseNodeFactory
-Dim i As Integer, j As Integer, k As Integer, l As Integer, m As Integer
+Dim i As Integer, k As Integer, l As Integer, m As Integer
 
        _FindModuleFromMethod = &quot;&quot;
-       Set oRoot = 
SF_Utils._GetUNOService(&quot;BrowseNodeFactory&quot;).createView(com.sun.star.script.browse.BrowseNodeFactoryViewTypes.MACROORGANIZER)
-
-       &apos;  Exploration is done via tree nodes
-       If Not IsNull(oRoot) Then
-               If oRoot.hasChildNodes() Then
-                       vCategories = oRoot.getChildNodes()
-                       For i = 0 To UBound(vCategories)
-                               sCategory = vCategories(i).getName()
-                               &apos;  Consider &quot;My macros &amp; 
Dialogs&quot; and &quot;LibreOffice Macros &amp; Dialogs&quot; only
-                               If sCategory = &quot;user&quot; Or sCategory = 
&quot;share&quot; Then
-                                       If vCategories(i).hasChildNodes() Then
-                                               vLanguages = 
vCategories(i).getChildNodes()
-                                               For j = 0 To UBound(vLanguages)
-                                                       sLanguage = 
vLanguages(j).getName()
-                                                       &apos;  Consider Basic 
libraries only
-                                                       If sLanguage = 
&quot;Basic&quot; Then
-                                                               If 
vLanguages(j).hasChildNodes() Then
-                                                                       
vLibraries = vLanguages(j).getChildNodes()
-                                                                       For k = 
0 To UBound(vLibraries)
-                                                                               
sLibrary = vLibraries(k).getName()
-                                                                               
&apos;  Consider the given library only
-                                                                               
If sLibrary = psLibrary Then
-                                                                               
        If vLibraries(k).hasChildNodes() Then
-                                                                               
                vModules = vLibraries(k).getChildNodes()
-                                                                               
                For l = 0 To UBound(vModules)
-                                                                               
                        sModule = vModules(l).getName()
-                                                                               
                        &apos;  Check if the module contains the targeted method
-                                                                               
                        If vModules(l).hasChildNodes() Then
-                                                                               
                                vMethods = vModules(l).getChildNodes()
-                                                                               
                                For m = 0 To UBound(vMethods)
-                                                                               
                                        sMethod = vMethods(m).getName()
-                                                                               
                                        If sMethod = psMethod Then
-                                                                               
                                                _FindModuleFromMethod = sModule
-                                                                               
                                                Exit Function
-                                                                               
                                        End If
-                                                                               
                                Next m
-                                                                               
                        End If
-                                                                               
                Next l
-                                                                               
        End If
-                                                                               
End If
-                                                                       Next k
-                                                               End If
+
+       &apos;  Exploration is done via tree nodes, starting
+       &apos;  from a com.sun.star.comp.scripting.ScriptProviderForBasic
+       &apos;  See also bug report 
https://bugs.documentfoundation.org/show_bug.cgi?id=165147
+       vCategories = Array(&quot;user&quot;, &quot;share&quot;)
+       For i = 0 To UBound(vCategories)
+               Set oBasic = 
CreateUnoService(&quot;com.sun.star.comp.scripting.ScriptProviderForBasic&quot;)
+               sCategory = vCategories(i)
+               oBasic.initialize(Array(sCategory))
+               If oBasic.hasChildNodes() Then
+                       vLibraries = oBasic.getChildNodes()
+                       For k = 0 To UBound(vLibraries)
+                               sLibrary = vLibraries(k).getName()
+                               &apos;  Consider the given library only
+                               If sLibrary = psLibrary Then
+                                       If vLibraries(k).hasChildNodes() Then
+                                               vModules = 
vLibraries(k).getChildNodes()
+                                               For l = 0 To UBound(vModules)
+                                                       sModule = 
vModules(l).getName()
+                                                       &apos;  Check if the 
module contains the targeted method
+                                                       If 
vModules(l).hasChildNodes() Then
+                                                               vMethods = 
vModules(l).getChildNodes()
+                                                               For m = 0 To 
UBound(vMethods)
+                                                                       sMethod 
= vMethods(m).getName()
+                                                                       If 
sMethod = psMethod Then
+                                                                               
_FindModuleFromMethod = sModule
+                                                                               
Exit Function
+                                                                       End If
+                                                               Next m
                                                        End If
-                                               Next j
+                                               Next l
                                        End If
                                End If
-                       Next i
+                       Next k
                End If
-       End If
+       Next i
 
 End Function   &apos;  ScriptForge.SF_Services._FindModuleFromMethod
 
commit fc2b74f5fd1b1945b9b3f8a608aa0aea64bbcaa6
Author:     Noel Grandin <[email protected]>
AuthorDate: Mon Feb 10 13:20:24 2025 +0200
Commit:     Andras Timar <[email protected]>
CommitDate: Wed Feb 12 20:15:08 2025 +0100

    tdf#165080 Background color cells are reset to white
    
    regression from
        commit 2d208c4e42595bb85fd0ef726a89e10dd32b48b1
        Author: Noel Grandin <[email protected]>
        Date:   Tue Jun 25 09:03:49 2024 +0200
        tdf#161210 speed xls load
    
    Change-Id: Ided4df0ce448cf811e7f43bcf601641e2b7c29c2
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181350
    Reviewed-by: Noel Grandin <[email protected]>
    Tested-by: Jenkins
    (cherry picked from commit c5f3e78f34a31077df6f9f8e3e9093454cdca25f)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181385
    Reviewed-by: Michael Weghorn <[email protected]>

diff --git a/sc/source/filter/excel/xistyle.cxx 
b/sc/source/filter/excel/xistyle.cxx
index dddf509b0944..0c859e6be53f 100644
--- a/sc/source/filter/excel/xistyle.cxx
+++ b/sc/source/filter/excel/xistyle.cxx
@@ -1993,17 +1993,6 @@ void XclImpXFRangeBuffer::Finalize()
     ScDocument& rDoc = rDocImport.getDoc();
     SCTAB nScTab = GetCurrScTab();
 
-    // apply row styles
-    for( SCROW nScRow = 0; nScRow < static_cast<SCROW>(maRows.size()); 
++nScRow )
-    {
-        if (!maRows[nScRow])
-            continue;
-        sal_uInt16 nXFIndex = *maRows[nScRow];
-        for( SCCOL nScCol = 0; nScCol < static_cast<SCCOL>(maColumns.size()); 
++nScCol )
-            if (maColumns[nScCol])
-                SetXF( ScAddress( nScCol, nScRow, 0 ), nXFIndex, xlXFModeRow );
-    }
-
     // apply patterns
     XclImpXFBuffer& rXFBuffer = GetXFBuffer();
     ScDocumentImport::Attrs aPendingAttrParam;
@@ -2062,6 +2051,16 @@ void XclImpXFRangeBuffer::Finalize()
     if( pendingColStart != -1 )
         rDocImport.setAttrEntries(nScTab, pendingColStart, pendingColEnd, 
std::move(aPendingAttrParam));
 
+    // apply row styles
+    for( SCROW nScRow = 0; nScRow < static_cast<SCROW>(maRows.size()); 
++nScRow )
+    {
+        if (!maRows[nScRow])
+            continue;
+        sal_uInt16 nXFIndex = *maRows[nScRow];
+        for( nScCol = 0; nScCol < static_cast<SCCOL>(maColumns.size()); 
++nScCol )
+            SetXF( ScAddress( nScCol, nScRow, 0 ), nXFIndex, xlXFModeRow );
+    }
+
     // insert hyperlink cells
     for( const auto& [rXclRange, rUrl] : maHyperlinks )
         XclImpHyperlink::InsertUrl( GetRoot(), rXclRange, rUrl );
commit 4089c6043fa97042b0cca28205226659da2e2f8b
Author:     Xisco Fauli <[email protected]>
AuthorDate: Mon Feb 10 10:19:13 2025 +0100
Commit:     Andras Timar <[email protected]>
CommitDate: Wed Feb 12 20:15:08 2025 +0100

    language-subtag-registry: upgrade to 2025-02-06
    
    How the file was created:
    mkdir data
    cd data
    wget
    
https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
    cd ..
    tar cvjf language-subtag-registry-2025-02-06.tar.bz2 
data/language-subtag-registry
    
    Change-Id: I3b61e752e14384ff45b692f63b2f741d6a09dc77
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181331
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <[email protected]>
    (cherry picked from commit ee29fb4b41b143eaa6cae5d962c55339e7cf1906)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181348
    Reviewed-by: Michael Weghorn <[email protected]>

diff --git a/download.lst b/download.lst
index d1f15ba1d809..e00a0c079003 100644
--- a/download.lst
+++ b/download.lst
@@ -462,8 +462,8 @@ LIBJPEG_TURBO_TARBALL := libjpeg-turbo-2.1.5.1.tar.gz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-LANGTAGREG_SHA256SUM := 
06b37484c2736816e84b8bdd2075011d5961c2316865bc2795831230b925608d
-LANGTAGREG_TARBALL := language-subtag-registry-2025-01-21.tar.bz2
+LANGTAGREG_SHA256SUM := 
e5fffcbd640e743fa9b699087d63ccf8ab5b52eed521da68f8c894f350856662
+LANGTAGREG_TARBALL := language-subtag-registry-2025-02-06.tar.bz2
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
commit e1a9cbfd35605a39a44c5c8d4681e94cd4f63c72
Author:     Xisco Fauli <[email protected]>
AuthorDate: Tue Feb 11 17:36:26 2025 +0100
Commit:     Andras Timar <[email protected]>
CommitDate: Wed Feb 12 20:15:08 2025 +0100

    openssl: upgrade to 3.0.16
    
    Downloaded from 
https://github.com/openssl/openssl/releases/download/openssl-3.0.16/openssl-3.0.16.tar.gz
    
    Change-Id: I9eeb10132455be1240cbe7312275d5211dee3600
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181442
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <[email protected]>
    (cherry picked from commit fe39e60102f34f6dba59828579ee75e4c05486e0)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181453
    Reviewed-by: Michael Weghorn <[email protected]>

diff --git a/download.lst b/download.lst
index 216c24d0263a..d1f15ba1d809 100644
--- a/download.lst
+++ b/download.lst
@@ -611,8 +611,8 @@ OPENLDAP_TARBALL := openldap-2.6.9.tgz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-OPENSSL_SHA256SUM := 
23c666d0edf20f14249b3d8f0368acaee9ab585b09e1de82107c66e1f3ec9533
-OPENSSL_TARBALL := openssl-3.0.15.tar.gz
+OPENSSL_SHA256SUM := 
57e03c50feab5d31b152af2b764f10379aecd8ee92f16c985983ce4a99f7ef86
+OPENSSL_TARBALL := openssl-3.0.16.tar.gz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
commit 567723e49ce602b19135a973a6a77af7c05f3a42
Author:     Michael Weghorn <[email protected]>
AuthorDate: Mon Feb 10 17:17:39 2025 +0100
Commit:     Andras Timar <[email protected]>
CommitDate: Wed Feb 12 20:15:07 2025 +0100

    tdf#153131 wina11y: Return error code when child count exceeds max long
    
    When the accessible child count exceeds max long,
    no longer return max long in the IAccessible::get_accChildCount [1]
    implementation in the Windows a11y bridge, but instead return error
    code `S_FALSE` [2]:
    
    > The method succeeded in part. This happens when the method succeeds, but
    > the requested information is not available. For example, Microsoft
    > Active Accessibility returns S_FALSE if you call IAccessible::accHitTest
    > to retrieve a child object at a given point, and the specified point is
    > not within the object or the object's child.
    
    This prevents the problem that Windows Speech Recognition on Windows 10
    (see tdf#153131) and apparently some tools on Windows 11 that query
    information from LO via the accessibility API (see tdf#165131 and
    tickets referenced from there) apparently try to iterate over all
    children from child index 0 to (excluding) the returned index
    unconditionally, which causes a freeze if the returned number is too large.
    
    In practice, this is known to be a problem with Calc sheets, for which
    all cells are currently considered direct children.
    
    A quick test with NVDA and this change in place didn't reveal any
    issues.
    (Independent of this change, using JAWS 2025.2412.50 instantly
    results in a crash somewhere in the AT code that gets run
    in-process, preventing to test what implications this change
    would have there otherwise.)
    
    [1] 
https://learn.microsoft.com/en-us/windows/win32/api/oleacc/nf-oleacc-iaccessible-get_accchildcount
    [2] https://learn.microsoft.com/en-us/windows/win32/winauto/return-values
    
    Change-Id: If12dbcbb387a765bec4194d2bfe61bd29aa0f8a7
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181370
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <[email protected]>
    (cherry picked from commit 9ee01d58771b8ea585698094019b1a4dd38e54eb)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181379
    Reviewed-by: Xisco Fauli <[email protected]>

diff --git a/winaccessibility/source/UAccCOM/MAccessible.cxx 
b/winaccessibility/source/UAccCOM/MAccessible.cxx
index fb13e7e6878a..a6454f3c39f8 100644
--- a/winaccessibility/source/UAccCOM/MAccessible.cxx
+++ b/winaccessibility/source/UAccCOM/MAccessible.cxx
@@ -299,9 +299,13 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP 
CMAccessible::get_accChildCount(long *pcountCh
             sal_Int64 nChildCount = pRContext->getAccessibleChildCount();
             if (nChildCount > std::numeric_limits<long>::max())
             {
-                SAL_WARN("iacc2", "CMAccessible::get_accChildCount: Child 
count exceeds maximum long value, "
-                                  "returning max long.");
-                nChildCount = std::numeric_limits<long>::max();
+                // return error code if child count exceeds max long value
+                // (for Calc sheets which report all cells as children);
+                // tdf#153131: Windows Speech Recognition and apparently some 
other
+                // tools quering information via the a11y API seem to query 
all children unconditionally,
+                // so returning a large number (like 
std::numeric_limits<long>::max) would cause a freeze
+                SAL_WARN("iacc2", "CMAccessible::get_accChildCount: Child 
count exceeds maximum long value");
+                return S_FALSE;
             }
 
             *pcountChildren = nChildCount;
commit 822ddb099fbae88d5f2c982107c71136b6f542a7
Author:     Noel Grandin <[email protected]>
AuthorDate: Tue Feb 11 12:54:02 2025 +0200
Commit:     Andras Timar <[email protected]>
CommitDate: Wed Feb 12 20:15:07 2025 +0100

    tdf#165003 Row height wrong at writing direction 90°
    
    regression from
        commit f91a411340ae204ce1e6997f22e0352a4c6a8355
        Author: Noel Grandin <[email protected]>
        Date:   Thu May 23 15:09:52 2024 +0200
        reduce cost of calc column height calculation
    
    This also fixes another bug in the above commit where the code did not
    update nValue for the "else if (bBreak && !bWidth)" case
    
    Change-Id: I367a56c2cb555336e1d510efb0c7acac1447525f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181417
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <[email protected]>
    (cherry picked from commit f2639e2a98f114f053a13da669440587d56a0dd8)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181422
    Reviewed-by: Xisco Fauli <[email protected]>

diff --git a/sc/qa/unit/data/ods/RowHeightTdf165003.ods 
b/sc/qa/unit/data/ods/RowHeightTdf165003.ods
new file mode 100644
index 000000000000..b3672f929f82
Binary files /dev/null and b/sc/qa/unit/data/ods/RowHeightTdf165003.ods differ
diff --git a/sc/qa/unit/subsequent_filters_test4.cxx 
b/sc/qa/unit/subsequent_filters_test4.cxx
index 72a5b1bd2a53..d8f11d5a3493 100644
--- a/sc/qa/unit/subsequent_filters_test4.cxx
+++ b/sc/qa/unit/subsequent_filters_test4.cxx
@@ -440,6 +440,29 @@ CPPUNIT_TEST_FIXTURE(ScFiltersTest4, testRowHeightODS)
     CPPUNIT_ASSERT_MESSAGE("Row should have an automatic height.", !bManual);
 }
 
+CPPUNIT_TEST_FIXTURE(ScFiltersTest4, testRowHeightTdf165003)
+{
+    createScDoc("ods/RowHeightTdf165003.ods");
+
+    SCTAB nTab = 0;
+    SCROW nRow = 0;
+    ScDocument* pDoc = getScDoc();
+
+    int nHeight = pDoc->GetRowHeight(nRow, nTab, false);
+    CPPUNIT_ASSERT_EQUAL(256, nHeight);
+    nHeight = pDoc->GetRowHeight(++nRow, nTab, false);
+    CPPUNIT_ASSERT_EQUAL(256, nHeight);
+    nHeight = pDoc->GetRowHeight(++nRow, nTab, false);
+    CPPUNIT_ASSERT_EQUAL(256, nHeight);
+    nHeight = pDoc->GetRowHeight(++nRow, nTab, false);
+    CPPUNIT_ASSERT_EQUAL(256, nHeight);
+    // this row has 90-degree rotated text, and without the fix, would have 
had zero height.
+    nHeight = pDoc->GetRowHeight(++nRow, nTab, false);
+    CPPUNIT_ASSERT_EQUAL(582, nHeight);
+    nHeight = pDoc->GetRowHeight(++nRow, nTab, false);
+    CPPUNIT_ASSERT_EQUAL(256, nHeight);
+}
+
 CPPUNIT_TEST_FIXTURE(ScFiltersTest4, testRichTextContentODS)
 {
     createScDoc("ods/rich-text-cells.ods");
diff --git a/sc/source/core/data/column2.cxx b/sc/source/core/data/column2.cxx
index e0e5505da9aa..37db657fb552 100644
--- a/sc/source/core/data/column2.cxx
+++ b/sc/source/core/data/column2.cxx
@@ -310,7 +310,10 @@ tools::Long ScColumn::GetNeededSize(
             tools::Long nWidth = 0;
             if ( eOrient != SvxCellOrientation::Standard )
             {
-                nWidth = pDev->GetTextHeight();
+                tools::Long nHeight = pDev->GetTextHeight();
+                // swap width and height
+                nValue = bWidth ? nHeight : pDev->GetTextWidth( aValStr );
+                nWidth = nHeight;
             }
             else if ( nRotate )
             {
@@ -363,7 +366,10 @@ tools::Long ScColumn::GetNeededSize(
                 }
             }
             else if (bBreak && !bWidth)
+            {
                 nWidth = pDev->GetTextWidth(aValStr);
+                nValue = pDev->GetTextHeight();
+            }
             else
                 // in the common case (height), avoid calling the expensive 
GetTextWidth
                 nValue = bWidth ? pDev->GetTextWidth( aValStr ) : 
pDev->GetTextHeight();
commit 52dc5019003ca48413a3e602f8e1699305dbd386
Author:     Justin Luth <[email protected]>
AuthorDate: Mon Feb 10 16:37:10 2025 -0500
Commit:     Andras Timar <[email protected]>
CommitDate: Wed Feb 12 20:15:07 2025 +0100

    tdf#165040 tdf#143899 compat15 layout: restrict body fly #2
    
    What was happening was that layout was considering
    whether to put the fly on a different page than the anchor,
    and my 25.2 commit 1de6bea27ed36167ec138818607da7b49e92ec4a
    apparently caused layout to accept that location in some cases,
    in which case it wasn't visible at all...
    
    Now, I'm not going to pretend that I actually understand LAYOUT at all,
    but my patch was only intending to affect the image
    in relation to the same page as the anchor is.
    So forcing that as a criteria seems to get me out of hot water.
    
    Since this is just bits-on-a-screen in some random kind of
    I'd-like-to-stick-myself-on-a-different-page layout anomaly
    and I don't have any nice changes-page-count examples,
    I'm not going to try to add a unit test.
    
    Change-Id: I84b980f109016ae6d904fb3720f77e131197b6a3
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181391
    Tested-by: Jenkins
    Reviewed-by: Justin Luth <[email protected]>
    (cherry picked from commit 95b173d41fa7a450821d0e69225df3faa899d290)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181396
    Reviewed-by: Michael Stahl <[email protected]>

diff --git a/sw/source/core/objectpositioning/anchoredobjectposition.cxx 
b/sw/source/core/objectpositioning/anchoredobjectposition.cxx
index c00002a4797e..fffa50e1948e 100644
--- a/sw/source/core/objectpositioning/anchoredobjectposition.cxx
+++ b/sw/source/core/objectpositioning/anchoredobjectposition.cxx
@@ -495,7 +495,7 @@ SwTwips SwAnchoredObjectPosition::ImplAdjustVertRelPos( 
const SwTwips nTopOfAnch
                 const SwBodyFrame* pBodyFrame = mpAnchorFrame->FindBodyFrame();
                 while (pBodyFrame && !pBodyFrame->IsPageBodyFrame())
                     pBodyFrame = pBodyFrame->GetUpper()->FindBodyFrame();
-                if (pBodyFrame)
+                if (pBodyFrame && pBodyFrame->GetUpper() == &rPageFrame) // 
same physical page...
                     aPgAlignArea = pBodyFrame->getFrameArea();
             }
         }
commit 592083bd469c747dc740edab42dfdbadd774e851
Author:     Xisco Fauli <[email protected]>
AuthorDate: Mon Feb 10 15:58:58 2025 +0100
Commit:     Andras Timar <[email protected]>
CommitDate: Wed Feb 12 20:15:07 2025 +0100

    gpgme: upgrade to 1.24.2
    
    Downloaded from https://gnupg.org/ftp/gcrypt/gpgme/gpgme-1.24.2.tar.bz2
    
    Change-Id: I3b75db7258a99cbab1f68151e678d118376b949c
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181362
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <[email protected]>
    (cherry picked from commit 249440f5b7a84f5855301ce71f365679e7ce45a6)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181384
    Reviewed-by: Taichi Haradaguchi <[email protected]>

diff --git a/download.lst b/download.lst
index ad6ceb2a0cb9..216c24d0263a 100644
--- a/download.lst
+++ b/download.lst
@@ -385,8 +385,8 @@ GLM_TARBALL := glm-1.0.1.zip
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-GPGME_SHA256SUM := 
ea05d0258e71061d61716584ec34cef59330a91340571edc46b78374973ba85f
-GPGME_TARBALL := gpgme-1.24.1.tar.bz2
+GPGME_SHA256SUM := 
e11b1a0e361777e9e55f48a03d89096e2abf08c63d84b7017cfe1dce06639581
+GPGME_TARBALL := gpgme-1.24.2.tar.bz2
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
diff --git a/external/gpgmepp/ExternalPackage_gpgmepp.mk 
b/external/gpgmepp/ExternalPackage_gpgmepp.mk
index 731e3a6a87bc..448815c8a630 100644
--- a/external/gpgmepp/ExternalPackage_gpgmepp.mk
+++ b/external/gpgmepp/ExternalPackage_gpgmepp.mk
@@ -15,8 +15,8 @@ ifneq ($(DISABLE_DYNLOADING),TRUE)
 
 ifeq ($(OS),LINUX)
 
-$(eval $(call 
gb_ExternalPackage_add_file,gpgmepp,$(LIBO_LIB_FOLDER)/libgpgmepp.so.6,lang/cpp/src/.libs/libgpgmepp.so.6.21.1))
-$(eval $(call 
gb_ExternalPackage_add_file,gpgmepp,$(LIBO_LIB_FOLDER)/libgpgme.so.11,src/.libs/libgpgme.so.11.33.1))
+$(eval $(call 
gb_ExternalPackage_add_file,gpgmepp,$(LIBO_LIB_FOLDER)/libgpgmepp.so.6,lang/cpp/src/.libs/libgpgmepp.so.6.21.2))
+$(eval $(call 
gb_ExternalPackage_add_file,gpgmepp,$(LIBO_LIB_FOLDER)/libgpgme.so.11,src/.libs/libgpgme.so.11.33.2))
 
 else ifeq ($(OS),MACOSX)
 
commit b2a38b6c8d25713a8dee07f24802dae902624309
Author:     Sahil Gautam <[email protected]>
AuthorDate: Fri Feb 7 23:40:31 2025 +0530
Commit:     Andras Timar <[email protected]>
CommitDate: Wed Feb 12 20:15:07 2025 +0100

    tdf#164972 Fix white-on-white themed scrollbars on windows
    
    - in case of light mode, decrease the base color luminance.
    
    - this is just a temporary fix similar to how other controls
      like disabled buttons are themed and would be replaced with
      themed native controls.
    
    Change-Id: If574e96499f48a5139775a2efcd6aa1f20e26c43
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181271
    Tested-by: Jenkins
    Reviewed-by: Sahil Gautam <[email protected]>
    (cherry picked from commit 731a4876b72d9794d2a76f170d0338f799369d3f)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181332
    Reviewed-by: Xisco Fauli <[email protected]>

diff --git a/vcl/win/gdi/salnativewidgets-luna.cxx 
b/vcl/win/gdi/salnativewidgets-luna.cxx
index 36011eb31bee..d0aa805284b8 100644
--- a/vcl/win/gdi/salnativewidgets-luna.cxx
+++ b/vcl/win/gdi/salnativewidgets-luna.cxx
@@ -498,10 +498,17 @@ static bool drawThemedControl(HDC hDC, ControlType nType, 
int iPart, int iState,
             Color aScrollBarThumbColor = 
ThemeColors::GetThemeColors().GetBaseColor();
             const Color& rBackgroundColor = 
ThemeColors::GetThemeColors().GetWindowColor();
 
+            bool bUseDarkMode = UseDarkMode();
             if (iState == SCRBS_PRESSED)
-                aScrollBarThumbColor.IncreaseLuminance(60);
+                if (bUseDarkMode)
+                    aScrollBarThumbColor.IncreaseLuminance(60);
+                else
+                    aScrollBarThumbColor.DecreaseLuminance(60);
             else if (iState = SCRBS_HOT)
-                aScrollBarThumbColor.IncreaseLuminance(30);
+                if (bUseDarkMode)
+                    aScrollBarThumbColor.IncreaseLuminance(30);
+                else
+                    aScrollBarThumbColor.DecreaseLuminance(30);
 
             ScopedHBRUSH hbrush(CreateSolidBrush(RGB(rBackgroundColor.GetRed(),
                                                      
rBackgroundColor.GetGreen(),
commit 5dab555ccc236797f1a30c04f17e25b661f7e2a8
Author:     Armin Le Grand (Collabora) <[email protected]>
AuthorDate: Fri Feb 7 15:52:13 2025 +0100
Commit:     Andras Timar <[email protected]>
CommitDate: Wed Feb 12 20:15:07 2025 +0100

    tdf#164712: ITEM regression: Fix SfxItemSet::Differentiate
    
    For SfxItemSet::Differentiate and ::Intersect we had the strange
    case that dependent of the former possible same WhichRanges two
    different things were done, see the comments I had added to those
    methods when adapting to ITEM changes.
    This error now has given a hint that one of those was the intended
    one, the one that ALSO does that for item in state
    SfxItemState::DISABLED or SfxItemState::INVALID.
    Thus I now adapted these methods to (hopefully now) do the right
    thing in all cases.
    
    Change-Id: I276da418d663d37942530563c4bfaf0a46a93e26
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181258
    Tested-by: Jenkins
    Reviewed-by: Armin Le Grand <[email protected]>
    (cherry picked from commit 95d640e4c228181485af50248d90ad94228de9a4)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181343
    Reviewed-by: Xisco Fauli <[email protected]>

diff --git a/svl/source/items/itemset.cxx b/svl/source/items/itemset.cxx
index d9da9c093cc9..d8aceb8dbb42 100644
--- a/svl/source/items/itemset.cxx
+++ b/svl/source/items/itemset.cxx
@@ -949,13 +949,9 @@ void SfxItemSet::Changed(const SfxPoolItem*, const 
SfxPoolItem*) const
 {
 }
 
-/**
- * Only retain the Items that are also present in rSet
- * (nevermind their value).
- */
 void SfxItemSet::Intersect( const SfxItemSet& rSet )
 {
-    // Delete all Items not contained in rSet
+    // Delete all Items *not* contained in rSet
     assert(m_pPool && "Not implemented without Pool");
 
     if (!Count() || this == &rSet)
@@ -970,21 +966,19 @@ void SfxItemSet::Intersect( const SfxItemSet& rSet )
         return;
     }
 
-    // CAUTION: In the former impl, the
-    // - version for different ranges checked for SfxItemState::UNKNOWN
-    //   in rSet -> this means that the WhichID is *not* defined in
-    //   the ranges of rSet *at all* > definitely an *error*
-    // - version for same ranges checked for
-    //   nullptr != local && nullptr == rSet.
-    // All together I think also using the text
-    // "Delete all Items not contained in rSet" leads to
-    // locally delete all Items that are *not* set in rSet
-    // -> != SfxItemState::SET
-
+    // locally delete all items *not* contained in rSet, independent of their
+    // values, just dependent of existence. Iterate over all existing local 
items
     for (PoolItemMap::iterator aCandidate(m_aPoolItemMap.begin()); aCandidate 
!= m_aPoolItemMap.end();)
     {
-        if (SfxItemState::SET != 
rSet.GetItemState_ForWhichID(SfxItemState::UNKNOWN, aCandidate->first, false, 
nullptr))
+        // check if an item with that WhichID exists in rSet
+        const PoolItemMap::const_iterator 
aHit(rSet.m_aPoolItemMap.find(aCandidate->first));
+
+        if (aHit == rSet.m_aPoolItemMap.end())
         {
+            // no item with that WhichID exists in rset, so we have to delete
+            // aCandidate.
+            // tdf#164712: NOTE: This includes all set items 
(SfxItemState::SET)
+            // but *also* SfxItemState::DISABLED and SfxItemState::INVALID.
 #ifdef DBG_UTIL
             assert(0 == m_nRegisteredSfxItemIter && "ITEM: SfxItemSet 
Intersect with active SfxItemIters (!)");
 #endif
@@ -1012,28 +1006,16 @@ void SfxItemSet::Differentiate(const SfxItemSet& rSet)
         return;
     }
 
-    // CAUTION: In the former impl, the
-    // - version for different ranges checked for SfxItemState::SET
-    //   in rSet
-    // - version for same ranges checked for
-    //   nullptr != local && nullptr != rSet.
-    // All together I think also using the text
-    // "Delete all Items contained in rSet" leads to
-    // locally delete all Items that *are *not* set in rSet
-    // -> ==SfxItemState::SET
-
-    for (PoolItemMap::iterator aCandidate(m_aPoolItemMap.begin()); aCandidate 
!= m_aPoolItemMap.end();)
+    // locally delete all items contained in rSet, independent of their
+    // values, just dependent of their existence in rSet.
+    // tdf#164712: NOTE: This includes all set items (SfxItemState::SET)
+    // but also SfxItemState::DISABLED and SfxItemState::INVALID.
+    // These are all items that exist in the std::unordered_map (PoolItemMap)
+    // of rSet, so we can just iterate over those and use the WhichID to
+    // delete the eventually Items in the local set
+    for (PoolItemMap::const_iterator aCandidate(rSet.m_aPoolItemMap.begin()); 
aCandidate != rSet.m_aPoolItemMap.end(); aCandidate++)
     {
-        if (SfxItemState::SET == 
rSet.GetItemState_ForWhichID(SfxItemState::UNKNOWN, aCandidate->first, false, 
nullptr))
-        {
-#ifdef DBG_UTIL
-            assert(0 == m_nRegisteredSfxItemIter && "ITEM: SfxItemSet 
Differentiate with active SfxItemIters (!)");
-#endif
-            ClearSingleItem_PrepareRemove(aCandidate->second);
-            aCandidate = m_aPoolItemMap.erase(aCandidate);
-        }
-        else
-            aCandidate++;
+        ClearSingleItem_ForWhichID(aCandidate->first);
     }
 }
 
commit b46dd0b5cd4e1f72b3d72aa9f586fad239bedf4d
Author:     Mike Kaganski <[email protected]>
AuthorDate: Sat Feb 8 13:32:33 2025 +0500
Commit:     Andras Timar <[email protected]>
CommitDate: Wed Feb 12 20:15:07 2025 +0100

    tdf#165099: do not notify change listeners about temporary changes
    
    Commit bc09a4f1ce1f6a714f7827a404aa6317b503d307 (Disable subpixel AA
    in GraphicExporter::filter unconditionally, 2024-12-04)  had changed
    GraphicExporter::filter  to set application settings unconditionally,
    instead of only when AA was explicitly set. That uncovered a problem
    that the change may trigger a rebuild of sidebars;  and in slideshow
    case, it may make the rebuilt sidebars to capture the temporary view
    created for the slideshow.
    
    1. Slideshow is built; in SlideShow::StartFullscreenPresentation, it
       creates a new component with a frame,  which eventually creates a
       new sd::DrawController;
    2. Slideshow draws its slide(s); in slideshow::internal::getMetaFile,
       GraphicExporter::filter is called, which would change application
       settings;
    3. Application::SetSettings eventually trigger WindowEventHandler in
       sfx2::sidebar::SidebarController, with WindowDataChanged;
    4. SidebarController::maContextChangeUpdate is called asynchronously,
       i.e.,  after all the draw is finished;  eventually this will call
       SidebarController::UpdateConfigurations for SdSlideTransitionDeck,
       which forces rebuild of the deck;
    5. sd::SlideTransitionPane::Initialize  resets its mxView to current
       controller, which is the sd::DrawController created on step 1 for
       the slideshow;
    6. sd::SlideShow::end closes its frame, eventually disposing frame's
       controller (calling sd::DrawController::dispose);  note that this
       controller is still referenced from sidebar.
    
    After that, the sidebar interactions will crash because of unhandled
    exception thrown from DrawController::ThrowIfDisposed.
    
    Note that the change in the abovementioned commit only uncovered the
    problem; before that change it could still crash, when AA was set in
    the GraphicExporter::filter call.
    
    This change makes sure to not notify listeners in the #3 above, when
    the change of the settings is only temporary  (for the duration of a
    export). This is similar to the existing bTemporary argument that is
    already passed to SetAntiAliasing from GraphicExporter::filter. This
    allows to avoid the unwanted sidebar rebuild;  and also, this should
    improve the filter call performance. The hope is, that this wouldn't
    modify the result; but if some components, that listen to the change
    notifications, happen to affect the export,  we likely would need to
    change their behavior to always use Application::GetSettings.
    
    It seems to me, that after this change, clicking the first time on a
    transition after a slideshow will not select it.  Seems like another
    pre-existing problem;  it flickered before selection even before the
    change; likely needs a separate fix.
    
    Change-Id: Ia0ba19401ca805c2190926623c1c708cf26a313b
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181288
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <[email protected]>
    (cherry picked from commit ca31eac04b10fec6bf27a801b9164ec419062763)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181300
    Reviewed-by: Xisco Fauli <[email protected]>

diff --git a/include/vcl/svapp.hxx b/include/vcl/svapp.hxx
index 719ced7a0e21..6708ada07e98 100644
--- a/include/vcl/svapp.hxx
+++ b/include/vcl/svapp.hxx
@@ -641,9 +641,12 @@ public:
      @param     rSettings       const reference to settings object used to
                                 change the application's settings.
 
+     @param     bTemporary      this is a temporary change (used in 
GraphicExporter::filter),
+                                do not notify change listeners
+
      @see OverrideSystemSettings, MergeSystemSettings, GetSettings
     */
-    static void                 SetSettings( const AllSettings& rSettings );
+    static void                 SetSettings( const AllSettings& rSettings, 
bool bTemporary = false );
 
     /** Gets the application's settings. If the application hasn't initialized
      it's settings, then it does so (lazy initialization).
diff --git a/svx/source/unodraw/UnoGraphicExporter.cxx 
b/svx/source/unodraw/UnoGraphicExporter.cxx
index e2b6f7ad029b..57c176edec47 100644
--- a/svx/source/unodraw/UnoGraphicExporter.cxx
+++ b/svx/source/unodraw/UnoGraphicExporter.cxx
@@ -1014,7 +1014,7 @@ sal_Bool SAL_CALL GraphicExporter::filter( const 
Sequence< PropertyValue >& aDes
             aStyleSettings.SetUseFontAAFromSystem(false);
         }
         aAllSettings.SetStyleSettings(aStyleSettings);
-        Application::SetSettings(aAllSettings);
+        Application::SetSettings(aAllSettings, /*bTemporary*/true);
         nStatus = GetGraphic( aSettings, aGraphic, bVectorType ) ? 
ERRCODE_NONE : ERRCODE_GRFILTER_FILTERERROR;
         if (aSettings.meAntiAliasing != TRISTATE_INDET)
         {
@@ -1023,7 +1023,7 @@ sal_Bool SAL_CALL GraphicExporter::filter( const 
Sequence< PropertyValue >& aDes
         }
         aStyleSettings.SetUseSubpixelAA(bUseSubpixelAA);
         aAllSettings.SetStyleSettings(aStyleSettings);
-        Application::SetSettings(aAllSettings);
+        Application::SetSettings(aAllSettings, /*bTemporary*/true);
     }
 
     if( nStatus == ERRCODE_NONE )
diff --git a/vcl/source/app/svapp.cxx b/vcl/source/app/svapp.cxx
index 7e66af9cb7e8..22e41ecd9bcf 100644
--- a/vcl/source/app/svapp.cxx
+++ b/vcl/source/app/svapp.cxx
@@ -593,7 +593,7 @@ void Application::MergeSystemSettings( AllSettings& 
rSettings )
     }
 }
 
-void Application::SetSettings( const AllSettings& rSettings )
+void Application::SetSettings(const AllSettings& rSettings, bool bTemporary)
 {
     const SolarMutexGuard aGuard;
 
@@ -612,8 +612,10 @@ void Application::SetSettings( const AllSettings& 
rSettings )
             pSVData->mbResLocaleSet = false;
         }
         *pSVData->maAppData.mxSettings = rSettings;
-        AllSettingsFlags nChangeFlags = aOldSettings.GetChangeFlags( 
*pSVData->maAppData.mxSettings );
-        if ( bool(nChangeFlags) )
+        // Don't broadcast temporary changes
+        AllSettingsFlags nChangeFlags = bTemporary ? AllSettingsFlags::NONE
+                                                   : 
aOldSettings.GetChangeFlags(*pSVData->maAppData.mxSettings);
+        if (nChangeFlags != AllSettingsFlags::NONE)
         {
             DataChangedEvent aDCEvt( DataChangedEventType::SETTINGS, 
&aOldSettings, nChangeFlags );
 
commit 6fdf006b231875fea0f92d43d62cdcc5696698c8
Author:     Patrick Luby <[email protected]>
AuthorDate: Sat Feb 8 14:04:04 2025 +0100
Commit:     Andras Timar <[email protected]>
CommitDate: Wed Feb 12 20:15:07 2025 +0100

    Revert "tdf#164223 invert alpha mask for JPEG images"
    
    This reverts commit 4925a905232f1bbfe6034fb3e6d33a61e46d0229.
    
    Reason for revert: the commit causes tdf#165125. Interestingly, tdf#165125 
no longer occurs on this branch after reverting the
    above commit so it appears that after my commit, some other
    commit may have fixed the underlying bug.
    
    Change-Id: Ief33e857b389882f4961a2b1bb8b1945f950e9cd
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181296
    Reviewed-by: Patrick Luby <[email protected]>
    Reviewed-by: Xisco Fauli <[email protected]>
    Tested-by: Jenkins

diff --git a/vcl/source/gdi/pdfwriter_impl.cxx 
b/vcl/source/gdi/pdfwriter_impl.cxx
index 270e9a407921..b86e84c03e79 100644
--- a/vcl/source/gdi/pdfwriter_impl.cxx
+++ b/vcl/source/gdi/pdfwriter_impl.cxx
@@ -9282,11 +9282,7 @@ void PDFWriterImpl::writeJPG( const JPGEmit& rObject )
     {
         BitmapEmit aEmit;
         aEmit.m_nObject = nMaskObject;
-        // tdf#164223 invert alpha mask for JPEG images
-        AlphaMask aAlpha = rObject.m_aAlphaMask;
-        if( aAlpha.hasAlpha() )
-            aAlpha.Invert();
-        aEmit.m_aBitmap = BitmapEx( rObject.m_aAlphaMask.GetBitmap(), aAlpha );
+        aEmit.m_aBitmap = BitmapEx( rObject.m_aAlphaMask.GetBitmap(), 
rObject.m_aAlphaMask );
         writeBitmapObject( aEmit, true );
     }
 
commit a2abb80dc8717252dd660658c38fcdac3313e7a5
Author:     Tibor Nagy <[email protected]>
AuthorDate: Fri Feb 7 02:27:57 2025 +0100
Commit:     Andras Timar <[email protected]>
CommitDate: Wed Feb 12 20:15:07 2025 +0100

    tdf#164775 PPTX export: fix connector shape regression
    
    A connector shape can be connected to a shape, if the end of connector 
shape is released inside the target shape, it will automatically attach to the 
best possible connection point.
    It takes into account the shape type, geometric properties, and
    user-defined glue points.
    In this case, if we export the ODP file to PPTX, we need to use the 
GetConnectorRule() method to get the correct connection index(idx).
    
    this regression is
    caused by commit 4d153517183193f468dee9148c94fe9d874bacb3
    (tdf#149697 PPTX export: fix changing place of connection points).
    
    Change-Id: I8eda059e72f595edc62fd5bc7f3e6466988af5bb
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181226
    Tested-by: Jenkins
    Reviewed-by: Nagy Tibor <[email protected]>
    (cherry picked from commit 589e523dd967e39f4715cfe120e12fba11cf9c90)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181341
    Reviewed-by: Xisco Fauli <[email protected]>

diff --git a/include/filter/msfilter/escherex.hxx 
b/include/filter/msfilter/escherex.hxx
index 91606bca13a2..d6c1b620f077 100644
--- a/include/filter/msfilter/escherex.hxx
+++ b/include/filter/msfilter/escherex.hxx
@@ -452,7 +452,7 @@ namespace com::sun::star {
     }
 }
 
-struct UNLESS_MERGELIBS(MSFILTER_DLLPUBLIC) EscherConnectorListEntry
+struct MSFILTER_DLLPUBLIC EscherConnectorListEntry
 {
     css::uno::Reference< css::drawing::XShape >   mXConnector;
     css::awt::Point                               maPointA;
diff --git a/oox/source/export/shapes.cxx b/oox/source/export/shapes.cxx
index 0bb8d1ebeecc..40bed3208567 100644
--- a/oox/source/export/shapes.cxx
+++ b/oox/source/export/shapes.cxx
@@ -1893,16 +1893,6 @@ ShapeExport& ShapeExport::WriteConnectorShape( const 
Reference< XShape >& xShape
     if (GetProperty(rXPropSet, u"EdgeEndConnection"_ustr))
         mAny >>= rXShapeB;
 
-    if (GetProperty(rXPropSet, u"StartGluePointIndex"_ustr))
-        mAny >>= nStartGlueId;
-    if (nStartGlueId != -1)
-        nStartGlueId = lcl_GetGluePointId(rXShapeA, nStartGlueId);
-
-    if (GetProperty(rXPropSet, u"EndGluePointIndex"_ustr))
-        mAny >>= nEndGlueId;
-    if (nEndGlueId != -1)
-        nEndGlueId = lcl_GetGluePointId(rXShapeB, nEndGlueId);
-
     // Position is relative to group in Word, but relative to anchor of group 
in API.
     if (GetDocumentType() == DOCUMENT_DOCX && !mbUserShapes && m_xParent.is())
     {
@@ -1914,6 +1904,24 @@ ShapeExport& ShapeExport::WriteConnectorShape( const 
Reference< XShape >& xShape
     }
     EscherConnectorListEntry aConnectorEntry( xShape, aStartPoint, rXShapeA, 
aEndPoint, rXShapeB );
 
+    if (GetProperty(rXPropSet, u"StartGluePointIndex"_ustr))
+    {
+        mAny >>= nStartGlueId;
+        nStartGlueId = (nStartGlueId != -1) ? lcl_GetGluePointId(rXShapeA, 
nStartGlueId)
+                                            : 
(aConnectorEntry.mXConnectToA.is()
+                                                   ? 
aConnectorEntry.GetConnectorRule(true)
+                                                   : -1);
+    }
+
+    if (GetProperty(rXPropSet, u"EndGluePointIndex"_ustr))
+    {
+        mAny >>= nEndGlueId;
+        nEndGlueId = (nEndGlueId != -1) ? lcl_GetGluePointId(rXShapeB, 
nEndGlueId)
+                                        : (aConnectorEntry.mXConnectToB.is()
+                                               ? 
aConnectorEntry.GetConnectorRule(false)
+                                               : -1);
+    }
+
     if (eConnectorType != ConnectorType_LINE)
     {
         tools::PolyPolygon aPolyPolygon = 
EscherPropertyContainer::GetPolyPolygon(xShape);
diff --git a/sd/qa/unit/data/odp/tdf164775.odp 
b/sd/qa/unit/data/odp/tdf164775.odp
new file mode 100644
index 000000000000..69b163333e3e
Binary files /dev/null and b/sd/qa/unit/data/odp/tdf164775.odp differ
diff --git a/sd/qa/unit/export-tests-ooxml3.cxx 
b/sd/qa/unit/export-tests-ooxml3.cxx
index c3ea2f874633..9e0b36b9096d 100644
--- a/sd/qa/unit/export-tests-ooxml3.cxx
+++ b/sd/qa/unit/export-tests-ooxml3.cxx
@@ -27,6 +27,18 @@ public:
     int testTdf115005_FallBack_Images(bool bAddReplacementImages);
 };
 
+CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest3, testTdf164775_ConnectorShape)
+{
+    createSdImpressDoc("odp/tdf164775.odp");
+    save(u"Impress Office Open XML"_ustr);
+
+    xmlDocUniquePtr pXmlDoc1 = parseExport(u"ppt/slides/slide1.xml"_ustr);
+    assertXPath(pXmlDoc1, 
"/p:sld/p:cSld/p:spTree/p:cxnSp/p:nvCxnSpPr/p:cNvCxnSpPr/a:stCxn", "idx",
+                u"3");
+    assertXPath(pXmlDoc1, 
"/p:sld/p:cSld/p:spTree/p:cxnSp/p:nvCxnSpPr/p:cNvCxnSpPr/a:endCxn", "idx",
+                u"1");
+}
+
 CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest3, testTdf153105)
 {
     createSdImpressDoc("odp/tdf153105.odp");
commit a8c88d5da1274985989eb05a8ed97021f35da353
Author:     Stephan Bergmann <[email protected]>
AuthorDate: Thu Feb 6 14:35:12 2025 +0100
Commit:     Andras Timar <[email protected]>
CommitDate: Wed Feb 12 20:15:07 2025 +0100

    Introduce loplugin:mustoverride
    
    ...to find derived classes that do not directly override 
SfxPoolItem::ItemType.
    Most of the cases that the plugin flagged were classes that are apparently 
not
    meant to be instantiated themselves (so I added pure virtual overrides 
there),
    but SdrMeasureFormatStringItem appears to genuinely have missed it
    DECLARE_ITEM_TYPE_FUNCTION stanza.
    
    Change-Id: Iec40080377f26cc4fa2c8cff735d5f0d3bd60509
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181211
    Reviewed-by: Armin Le Grand <[email protected]>
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <[email protected]>
    Signed-off-by: Xisco Fauli <[email protected]>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181255

diff --git a/compilerplugins/clang/mustoverride.cxx 
b/compilerplugins/clang/mustoverride.cxx
new file mode 100644
index 000000000000..bd1fee629870
--- /dev/null
+++ b/compilerplugins/clang/mustoverride.cxx
@@ -0,0 +1,104 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; 
fill-column: 100 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#ifndef LO_CLANG_SHARED_PLUGINS
+
+// Find classes deriving from other classes with virtual member functions 
annotated with
+// SAL_LOPLUGIN_ANNOTATE("mustoverride"), but where the derived class fails to 
directly override
+// them.
+
+#include <set>
+
+#include "plugin.hxx"
+
+namespace
+{
+void findMustOverride(CXXRecordDecl const* decl, std::set<CXXMethodDecl 
const*>* mustOverride)
+{
+    for (auto const& base : decl->bases())
+    {
+        auto const d = base.getType()->getAsCXXRecordDecl();
+        if (d == nullptr)
+        {
+            continue;
+        }
+        findMustOverride(d, mustOverride);
+        for (auto const meth : d->methods())
+        {
+            if (!meth->isVirtual())
+            {
+                continue;
+            }
+            for (auto const attr : meth->specific_attrs<AnnotateAttr>())
+            {
+                if (attr->getAnnotation() == "loplugin:mustoverride")
+                {
+                    mustOverride->insert(meth);
+                    break;
+                }
+            }
+        }
+    }
+}
+
+class MustOverride : public loplugin::FilteringPlugin<MustOverride>
+{
+public:
+    explicit MustOverride(loplugin::InstantiationData const& data)
+        : FilteringPlugin(data)
+    {
+    }
+
+    bool VisitCXXRecordDecl(CXXRecordDecl const* decl)
+    {
+        if (ignoreLocation(decl))
+        {
+            return true;
+        }
+        if (!decl->isThisDeclarationADefinition())
+        {
+            return true;
+        }
+        if (!decl->isPolymorphic())
+        {
+            return true;
+        }
+        std::set<CXXMethodDecl const*> mustOverride;
+        findMustOverride(decl, &mustOverride);
+        for (auto const meth : mustOverride)
+        {
+            if (meth->getCorrespondingMethodDeclaredInClass(decl) != nullptr)
+            {
+                continue;
+            }
+            report(DiagnosticsEngine::Warning, "%0 does not override %1 from 
%2",
+                   decl->getLocation())
+                << decl << meth << meth->getParent() << decl->getSourceRange();
+            report(DiagnosticsEngine::Note, "declared here", 
meth->getLocation())
+                << meth->getSourceRange();
+        }
+        return true;
+    }
+
+private:
+    void run() override
+    {
+        if (compiler.getLangOpts().CPlusPlus)
+        {
+            TraverseDecl(compiler.getASTContext().getTranslationUnitDecl());
+        }
+    }
+};
+
+loplugin::Plugin::Registration<MustOverride> mustoverride("mustoverride");
+}
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s 
cinkeys+=0=break: */
diff --git a/compilerplugins/clang/test/mustoverride.cxx 
b/compilerplugins/clang/test/mustoverride.cxx
new file mode 100644
index 000000000000..1d9b550271e3
--- /dev/null
+++ b/compilerplugins/clang/test/mustoverride.cxx
@@ -0,0 +1,28 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; 
fill-column: 100 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <sal/config.h>
+
+#include <sal/types.h>
+
+struct Base
+{
+    // expected-note@+1 {{declared here}}
+    SAL_LOPLUGIN_ANNOTATE("mustoverride") virtual void mustOverride();
+
+    SAL_LOPLUGIN_ANNOTATE("mustoverride") virtual void mustOverride2();
+};
+
+// expected-error@+1 {{'Derived' does not override 'mustOverride' from 'Base'}}
+struct Derived : Base
+{
+    void mustOverride2() override;
+};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s 
cinkeys+=0=break: */
diff --git a/include/svl/eitem.hxx b/include/svl/eitem.hxx
index 518ebe51db62..229979724059 100644
--- a/include/svl/eitem.hxx
+++ b/include/svl/eitem.hxx
@@ -37,6 +37,8 @@ protected:
 
     SfxEnumItem(const SfxEnumItem &) = default;
 
+    virtual SfxItemType ItemType() const override = 0;
+
 public:
 
     EnumT GetValue() const { return m_nValue; }
diff --git a/include/svl/metitem.hxx b/include/svl/metitem.hxx
index 30cf75b7f864..7b408fa60553 100644
--- a/include/svl/metitem.hxx
+++ b/include/svl/metitem.hxx
@@ -27,6 +27,8 @@ class SVL_DLLPUBLIC SfxMetricItem: public SfxInt32Item
 public:
     explicit                 SfxMetricItem( sal_uInt16 nWhich, sal_Int32 
nValue );
 
+    virtual SfxItemType ItemType() const override = 0;
+
     virtual void             ScaleMetrics( tools::Long lMult, tools::Long lDiv 
) override;
     virtual bool             HasMetrics() const override;
 
diff --git a/include/svl/poolitem.hxx b/include/svl/poolitem.hxx
index e9d455eeed83..a2f98c57b0b8 100644
--- a/include/svl/poolitem.hxx
+++ b/include/svl/poolitem.hxx
@@ -208,6 +208,7 @@ enum class SfxItemType : sal_uInt16
     SdrMeasureBelowRefEdgeItemType,
     SdrMeasureDecimalPlacesItemType,
     SdrMeasureKindItemType,
+    SdrMeasureFormatStringItemType,
     SdrMeasureOverhangItemType,
     SdrMeasureScaleItemType,
     SdrMeasureTextAutoAngleItemType,
@@ -689,7 +690,7 @@ public:
                                  m_nWhich = nId;
                              }
     sal_uInt16 Which() const { return m_nWhich; }
-    virtual SfxItemType ItemType() const = 0;
+    SAL_LOPLUGIN_ANNOTATE("mustoverride") virtual SfxItemType ItemType() const 
= 0;
 
     // StaticWhichCast asserts if the TypedWhichId is not matching its type, 
otherwise it returns a reference.
     // You can use StaticWhichCast when you are sure about the type at compile 
time -- like a static_cast.
diff --git a/solenv/CompilerTest_compilerplugins_clang.mk 
b/solenv/CompilerTest_compilerplugins_clang.mk
index 5ae22fc2d634..eb74020d5ca6 100644
--- a/solenv/CompilerTest_compilerplugins_clang.mk
+++ b/solenv/CompilerTest_compilerplugins_clang.mk
@@ -50,6 +50,7 @@ $(eval $(call 
gb_CompilerTest_add_exception_objects,compilerplugins_clang, \
     compilerplugins/clang/test/makeshared \
     compilerplugins/clang/test/moveit \
     compilerplugins/clang/test/moveparam \
+    compilerplugins/clang/test/mustoverride \
     compilerplugins/clang/test/noexcept \
     compilerplugins/clang/test/noexceptmove \
     compilerplugins/clang/test/nullptr \
diff --git a/svx/inc/sxmfsitm.hxx b/svx/inc/sxmfsitm.hxx
index 56422bcc4018..3f670822c1e1 100644
--- a/svx/inc/sxmfsitm.hxx
+++ b/svx/inc/sxmfsitm.hxx
@@ -27,6 +27,7 @@ class SdrMeasureFormatStringItem final : public SfxStringItem 
{
 public:
     SdrMeasureFormatStringItem()
         : SfxStringItem(SDRATTR_MEASUREFORMATSTRING) {}
+    DECLARE_ITEM_TYPE_FUNCTION(SdrMeasureFormatStringItem)
     virtual SdrMeasureFormatStringItem* Clone(SfxItemPool*) const override
     {
         return new SdrMeasureFormatStringItem(*this);
diff --git a/sw/inc/fmtftntx.hxx b/sw/inc/fmtftntx.hxx
index 26106ef6aae9..601879239bb1 100644
--- a/sw/inc/fmtftntx.hxx
+++ b/sw/inc/fmtftntx.hxx
@@ -51,6 +51,8 @@ protected:
         : SfxEnumItem( nWhichL, ePos ), m_nOffset( 0 )
     {}
 
+    virtual SfxItemType ItemType() const override = 0;
+
 public:
     virtual sal_uInt16       GetValueCount() const override;
 
diff --git a/sw/inc/grfatr.hxx b/sw/inc/grfatr.hxx
index edc2b3a10d84..62f7585fec56 100644
--- a/sw/inc/grfatr.hxx
+++ b/sw/inc/grfatr.hxx
@@ -154,6 +154,8 @@ protected:
         : SfxInt16Item( nWhichL, nVal )
     {}
 
+    virtual SfxItemType ItemType() const override = 0;
+
 public:
     // pure virtual methods from SfxInt16Item
     virtual bool GetPresentation( SfxItemPresentation ePres,
@@ -265,6 +267,8 @@ class SwDrawModeGrf_Base: public 
SfxEnumItem<GraphicDrawMode> {
 protected:
     SwDrawModeGrf_Base(GraphicDrawMode nMode):
         SfxEnumItem(RES_GRFATR_DRAWMODE, nMode) {}
+
+    virtual SfxItemType ItemType() const override = 0;
 };
 
 class SW_DLLPUBLIC SwDrawModeGrf final : public SwDrawModeGrf_Base
commit d8fb2e1124f310ba63e073e3dac57f0fd63d545e
Author:     Noel Grandin <[email protected]>
AuthorDate: Tue Dec 24 12:28:29 2024 +0200
Commit:     Andras Timar <[email protected]>
CommitDate: Wed Feb 12 20:15:07 2025 +0100

    move RES_FMT_CHG to SfxHint
    
    SwUpdateAttr is re-using this constant for a similar purpose,
    so rather give that its own constant to play with
    RES_UPDATEATTR_FMT_CHG.
    
    Change-Id: I5ffe2a861c44948d8c7dbdd6cf1435c913985c6c
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/179305
    Reviewed-by: Noel Grandin <[email protected]>
    Tested-by: Jenkins
    Signed-off-by: Xisco Fauli <[email protected]>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181266

diff --git a/include/svl/hint.hxx b/include/svl/hint.hxx
index 76749341f41b..522da6126435 100644
--- a/include/svl/hint.hxx
+++ b/include/svl/hint.hxx
@@ -230,6 +230,7 @@ enum class SfxHintId {
     SwFindUnoTextTableRowInstance,
     SwFindUnoCellInstance,
     SwRemoveUnoObject,
+    SwFormatChange,
 
     ThisIsAnSdrHint,
     ThisIsAnSfxEventHint
diff --git a/sw/inc/BorderCacheOwner.hxx b/sw/inc/BorderCacheOwner.hxx
index 8a70dda7460d..a6c7fee4c95f 100644
--- a/sw/inc/BorderCacheOwner.hxx
+++ b/sw/inc/BorderCacheOwner.hxx
@@ -41,6 +41,7 @@ public:
     ~BorderCacheOwner();
     bool IsInCache() const { return m_bInCache; }
     void InvalidateInSwCache(const sal_uInt16);
+    void InvalidateInSwCache();
 };
 }
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/inc/fmtcol.hxx b/sw/inc/fmtcol.hxx
index 3c32c6517a33..d5cbb8e5842f 100644
--- a/sw/inc/fmtcol.hxx
+++ b/sw/inc/fmtcol.hxx
@@ -148,12 +148,15 @@ public:
             switch(nWhich)
             {
                 case RES_OBJECTDYING:
-                case RES_FMT_CHG:
                 case RES_ATTRSET_CHG:
                     m_bInSwFntCache = false;
             }
         }
     };
+    virtual void InvalidateInSwFntCache() override
+    {
+        m_bInSwFntCache = false;
+    }
 };
 
 class SwGrfFormatColl final : public SwFormatColl
diff --git a/sw/inc/format.hxx b/sw/inc/format.hxx
index 1646f37a10cd..3f88d6ae2927 100644
--- a/sw/inc/format.hxx
+++ b/sw/inc/format.hxx
@@ -64,6 +64,7 @@ class SW_DLLPUBLIC SwFormat : public sw::BorderCacheOwner, 
public sw::Broadcasti
     bool m_bHidden : 1;
     std::shared_ptr<SfxGrabBagItem> m_pGrabBagItem; ///< Style InteropGrabBag.
     virtual void InvalidateInSwFntCache(sal_uInt16) {};
+    virtual void InvalidateInSwFntCache() {};
 
 protected:
     SwFormat( SwAttrPool& rPool, const OUString& rFormatNm,
diff --git a/sw/inc/hintids.hxx b/sw/inc/hintids.hxx
index dd231fa41392..a03cb568c294 100644
--- a/sw/inc/hintids.hxx
+++ b/sw/inc/hintids.hxx
@@ -428,7 +428,8 @@ inline constexpr sal_uInt16 RES_FMT_END(167);
 // ID's for Messages in the Formats
 inline constexpr sal_uInt16 RES_FORMAT_MSG_BEGIN(RES_FMT_END);
 inline constexpr TypedWhichId<SwPtrMsgPoolItem> 
RES_OBJECTDYING(RES_FORMAT_MSG_BEGIN); // 167
-inline constexpr TypedWhichId<SwFormatChg> RES_FMT_CHG(168);
+inline constexpr sal_uInt16 RES_UPDATEATTR_FMT_CHG(
+    168); // used by SwUpdateAttr just as an ID to communicate what has changed
 inline constexpr TypedWhichId<SwAttrSetChg> RES_ATTRSET_CHG(169);
 inline constexpr TypedWhichId<SwUpdateAttr> RES_UPDATE_ATTR(170);
 inline constexpr TypedWhichId<SwMsgPoolItem> RES_HIDDENPARA_PRINT(178);
diff --git a/sw/inc/hints.hxx b/sw/inc/hints.hxx
index 04da74a4092e..4037ebe34c92 100644
--- a/sw/inc/hints.hxx
+++ b/sw/inc/hints.hxx
@@ -68,17 +68,15 @@ public:
 };
 
 /**
- * SwFormatChg is sent when a format has changed to another format. 2 Hints 
are always sent
- * the old and the new format
- *
- * This is typically owned by an sw::LegacyModifyHint, which knows if this 
pool item is the old or
- * the new format.
+ * SwFormatChg is sent when a format has changed to another format.
  */
-class SwFormatChg final : public SwMsgPoolItem
+class SwFormatChangeHint final : public SfxHint
 {
 public:
-    SwFormat *pChangedFormat;
-    SwFormatChg( SwFormat *pFormat );
+    SwFormat *m_pOldFormat;
+    SwFormat *m_pNewFormat;
+    SwFormatChangeHint(SwFormat* pOldFormat, SwFormat* pNewFormat)
+        : SfxHint(SfxHintId::SwFormatChange), m_pOldFormat(pOldFormat), 
m_pNewFormat(pNewFormat) {}
 };
 
 
diff --git a/sw/inc/ndtxt.hxx b/sw/inc/ndtxt.hxx
index 47ecca334642..30951a7d56bd 100644
--- a/sw/inc/ndtxt.hxx
+++ b/sw/inc/ndtxt.hxx
@@ -68,6 +68,7 @@ struct SwDocStat;
 enum class ExpandMode;
 enum class SwFieldIds : sal_uInt16;
 class SwField;
+class SwFormatChangeHint;
 
 namespace sw {
     class TextNodeNotificationSuppressor;
@@ -243,6 +244,7 @@ public:
     /// for hanging TextFormatCollections somewhere else (Outline-Numbering!)
     void TriggerNodeUpdate(const sw::LegacyModifyHint&);
     void TriggerNodeUpdate(const sw::RemoveUnoObjectHint&);
+    void TriggerNodeUpdate(const SwFormatChangeHint&);
 
     const OUString& GetText() const { return m_Text; }
 
diff --git a/sw/inc/swevent.hxx b/sw/inc/swevent.hxx
index f011b8cc64ea..d6d79d72a9b7 100644
--- a/sw/inc/swevent.hxx
+++ b/sw/inc/swevent.hxx
@@ -124,18 +124,20 @@ struct SwCallMouseEvent final
                 Clear();
             return;
         }
+        if(SfxHintId::SwFormatChange == rHint.GetId())
+        {
+            auto pChgHint = static_cast<const SwFormatChangeHint*>(&rHint);
+            assert(EVENT_OBJECT_IMAGE == eType || EVENT_OBJECT_URLITEM == 
eType || EVENT_OBJECT_IMAGEMAP == eType);
+            SwClient::SwClientNotify(rMod, rHint);
+            if (!GetRegisteredIn() || pChgHint->m_pOldFormat == PTR.pFormat)
+                Clear();
+            return;
+        }
         if (rHint.GetId() != SfxHintId::SwLegacyModify)
             return;
-        auto pLegacy = static_cast<const sw::LegacyModifyHint*>(&rHint);
         assert(EVENT_OBJECT_IMAGE == eType || EVENT_OBJECT_URLITEM == eType || 
EVENT_OBJECT_IMAGEMAP == eType);
         SwClient::SwClientNotify(rMod, rHint);
         bool bClear = !GetRegisteredIn();
-        switch(pLegacy->GetWhich())
-        {
-            case RES_FMT_CHG:
-                bClear |= 
pLegacy->m_pOld->StaticWhichCast(RES_FMT_CHG).pChangedFormat == PTR.pFormat;
-                break;
-        }
         if(bClear)
             Clear();
     }
diff --git a/sw/inc/txtatr.hxx b/sw/inc/txtatr.hxx
index cf1b77073676..e96ea4fbe40d 100644
--- a/sw/inc/txtatr.hxx
+++ b/sw/inc/txtatr.hxx
@@ -44,6 +44,7 @@ public:
     virtual ~SwTextCharFormat( ) override;
 
     void TriggerNodeUpdate(const sw::LegacyModifyHint&);
+    void TriggerNodeUpdate(const SwFormatChangeHint&);
 
     // get and set TextNode pointer
     void ChgTextNode( SwTextNode* pNew ) { m_pTextNode = pNew; }
diff --git a/sw/source/core/attr/BorderCacheOwner.cxx 
b/sw/source/core/attr/BorderCacheOwner.cxx
index dd71b694931f..9f9c56144927 100644
--- a/sw/source/core/attr/BorderCacheOwner.cxx
+++ b/sw/source/core/attr/BorderCacheOwner.cxx
@@ -26,7 +26,6 @@ void BorderCacheOwner::InvalidateInSwCache(const sal_uInt16 
nWhich)
     switch (nWhich)
     {
         case RES_OBJECTDYING:
-        case RES_FMT_CHG:
         case RES_ATTRSET_CHG:
         case RES_UL_SPACE:
         case RES_MARGIN_FIRSTLINE:
@@ -45,4 +44,13 @@ void BorderCacheOwner::InvalidateInSwCache(const sal_uInt16 
nWhich)
             }
     }
 }
+
+void BorderCacheOwner::InvalidateInSwCache()
+{
+    if (m_bInCache)
+    {
+        SwFrame::GetCache().Delete(this);
+        m_bInCache = false;
+    }
+}
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/core/attr/calbck.cxx b/sw/source/core/attr/calbck.cxx
index 58a075ba6dff..e4a1f437cef7 100644
--- a/sw/source/core/attr/calbck.cxx
+++ b/sw/source/core/attr/calbck.cxx
@@ -111,9 +111,7 @@ void SwClient::CheckRegistrationFormat(SwFormat& rOld)
     SAL_INFO("sw.core", "reparenting " << typeid(*this).name() << " at " << 
this << " from " << typeid(rOld).name() << " at " << &rOld << " to "  << 
typeid(*pNew).name() << " at " << pNew);
     assert(pNew);
     pNew->Add(*this);
-    const SwFormatChg aOldFormat(&rOld);
-    const SwFormatChg aNewFormat(pNew);
-    const sw::LegacyModifyHint aHint(&aOldFormat, &aNewFormat);
+    const SwFormatChangeHint aHint(&rOld, pNew);
     SwClientNotify(rOld, aHint);
 }
 
@@ -291,7 +289,7 @@ sw::ClientIteratorBase* 
sw::ClientIteratorBase::s_pClientIters = nullptr;
 
 void SwModify::SwClientNotify(const SwModify&, const SfxHint& rHint)
 {
-    if (rHint.GetId() != SfxHintId::SwLegacyModify && rHint.GetId() != 
SfxHintId::SwRemoveUnoObject)
+    if (rHint.GetId() != SfxHintId::SwLegacyModify && rHint.GetId() != 
SfxHintId::SwRemoveUnoObject && rHint.GetId() != SfxHintId::SwRemoveUnoObject)
         return;
 
     DBG_TESTSOLARMUTEX();
diff --git a/sw/source/core/attr/format.cxx b/sw/source/core/attr/format.cxx
index 86cb2b484ad4..5c4683a07897 100644
--- a/sw/source/core/attr/format.cxx
+++ b/sw/source/core/attr/format.cxx
@@ -90,7 +90,7 @@ SwFormat &SwFormat::operator=(const SwFormat& rFormat)
     m_nPoolHelpId = rFormat.GetPoolHelpId();
     m_nPoolHlpFileId = rFormat.GetPoolHlpFileId();
 
-    InvalidateInSwCache(RES_OBJECTDYING);
+    InvalidateInSwCache();
 
     // copy only array with attributes delta
     SwAttrSet aOld( *m_aSet.GetPool(), m_aSet.GetRanges() ),
@@ -150,8 +150,8 @@ void SwFormat::SetFormatName( const OUString& rNewName, 
bool bBroadcast )
 void SwFormat::CopyAttrs( const SwFormat& rFormat )
 {
     // copy only array with attributes delta
-    InvalidateInSwCache(RES_ATTRSET_CHG);
-    InvalidateInSwFntCache(RES_ATTRSET_CHG);
+    InvalidateInSwCache();
+    InvalidateInSwFntCache();
 
     // special treatments for some attributes
     SwAttrSet* pChgSet = const_cast<SwAttrSet*>(&rFormat.m_aSet);
@@ -214,6 +214,26 @@ void SwFormat::SwClientNotify(const SwModify&, const 
SfxHint& rHint)
         SwModify::SwClientNotify(*this, rHint);
         return;
     }
+    if (rHint.GetId() == SfxHintId::SwFormatChange)
+    {
+        auto pChangeHint = static_cast<const SwFormatChangeHint*>(&rHint);
+
+        InvalidateInSwCache();
+
+        // if the format parent will be moved so register my attribute set at
+        // the new one
+
+        // skip my own Modify
+        // NB: this still notifies depends even if this condition is not met, 
which seems non-obvious
+        if(pChangeHint->m_pOldFormat != this && pChangeHint->m_pNewFormat == 
GetRegisteredIn())
+        {
+            // attach Set to new parent
+            m_aSet.SetParent(DerivedFrom() ? &DerivedFrom()->m_aSet : nullptr);
+        }
+        InvalidateInSwFntCache();
+        SwModify::SwClientNotify(*this, rHint);
+        return;
+    }
     if (rHint.GetId() != SfxHintId::SwLegacyModify)
         return;
     auto pLegacy = static_cast<const sw::LegacyModifyHint*>(&rHint);
@@ -274,22 +294,6 @@ void SwFormat::SwClientNotify(const SwModify&, const 
SfxHint& rHint)
             }
             break;
         }
-        case RES_FMT_CHG:
-        {
-            // if the format parent will be moved so register my attribute set 
at
-            // the new one
-
-            // skip my own Modify
-            // NB: this still notifies depends even if this condition is not 
met, which seems non-obvious
-            auto pOldFormatChg = static_cast<const 
SwFormatChg*>(pLegacy->m_pOld);
-            auto pNewFormatChg = static_cast<const 
SwFormatChg*>(pLegacy->m_pNew);
-            if(pOldFormatChg && pNewFormatChg && pOldFormatChg->pChangedFormat 
!= this && pNewFormatChg->pChangedFormat == GetRegisteredIn())
-            {
-                // attach Set to new parent
-                m_aSet.SetParent(DerivedFrom() ? &DerivedFrom()->m_aSet : 
nullptr);
-            }
-            break;
-        }
         default:
             // attribute is defined in this format
             if(SfxItemState::SET == m_aSet.GetItemState(nWhich, false))
@@ -335,15 +339,13 @@ bool SwFormat::SetDerivedFrom(SwFormat *pDerFrom)
             || (Which()==RES_FLYFRMFMT && pDerFrom->Which()==RES_FRMFMT)
             );
 
-    InvalidateInSwCache(RES_ATTRSET_CHG);
-    InvalidateInSwFntCache(RES_ATTRSET_CHG);
+    InvalidateInSwCache();
+    InvalidateInSwFntCache();
 
     pDerFrom->Add(*this);
     m_aSet.SetParent( &pDerFrom->m_aSet );
 
-    SwFormatChg aOldFormat( this );
-    SwFormatChg aNewFormat( this );
-    const sw::LegacyModifyHint aHint(&aOldFormat, &aNewFormat);
+    const SwFormatChangeHint aHint(this, this);
     SwClientNotify(*this, aHint);
 
     return true;
@@ -519,8 +521,8 @@ bool SwFormat::SetFormatAttr( const SfxItemSet& rSet )
     if( !rSet.Count() )
         return false;
 
-    InvalidateInSwCache(RES_ATTRSET_CHG);
-    InvalidateInSwFntCache(RES_ATTRSET_CHG);
+    InvalidateInSwCache();
+    InvalidateInSwFntCache();
 
     bool bRet = false;
 
@@ -639,8 +641,8 @@ sal_uInt16 SwFormat::ResetAllFormatAttr()
     if( !m_aSet.Count() )
         return 0;
 
-    InvalidateInSwCache(RES_ATTRSET_CHG);
-    InvalidateInSwFntCache(RES_ATTRSET_CHG);
+    InvalidateInSwCache();
+    InvalidateInSwFntCache();
 
     // if Modify is locked then no modifications will be sent
     if( IsModifyLocked() )
@@ -659,8 +661,8 @@ void SwFormat::DelDiffs( const SfxItemSet& rSet )
     if( !m_aSet.Count() )
         return;
 
-    InvalidateInSwCache(RES_ATTRSET_CHG);
-    InvalidateInSwFntCache(RES_ATTRSET_CHG);
+    InvalidateInSwCache();
+    InvalidateInSwFntCache();
 
     // if Modify is locked then no modifications will be sent
     if( IsModifyLocked() )
diff --git a/sw/source/core/attr/hints.cxx b/sw/source/core/attr/hints.cxx
index 61c3666ac57a..bd3a14bf5c06 100644
--- a/sw/source/core/attr/hints.cxx
+++ b/sw/source/core/attr/hints.cxx
@@ -28,13 +28,6 @@
 #include <vcl/outdev.hxx>
 #include <osl/diagnose.h>
 
-SwFormatChg::SwFormatChg( SwFormat* pFormat )
-    : SwMsgPoolItem( RES_FMT_CHG ), pChangedFormat( pFormat )
-{
-}
-
-
-
 namespace sw {
 
 InsertText::InsertText(const sal_Int32 nP, const sal_Int32 nL, const bool 
isInFMCommand, const bool isInFMResult)
diff --git a/sw/source/core/crsr/crsrsh.cxx b/sw/source/core/crsr/crsrsh.cxx
index 62d2776ba6c6..3efc5cc5a3f4 100644
--- a/sw/source/core/crsr/crsrsh.cxx
+++ b/sw/source/core/crsr/crsrsh.cxx
@@ -2900,6 +2900,16 @@ void SwCursorShell::SwClientNotify(const SwModify&, 
const SfxHint& rHint)
         m_aGrfArrivedLnk.Call(*this);
         return;
     }
+    if (rHint.GetId() == SfxHintId::SwFormatChange)
+    {
+        if( m_bCallChgLnk )
+            // messages are not forwarded
+            // #i6681#: RES_UPDATE_ATTR is implicitly unset in
+            // SwTextNode::Insert(SwTextHint*, sal_uInt16); we react here and 
thus do
+            // not need to send the expensive RES_FMT_CHG in Insert.
+            CallChgLnk();
+        return;
+    }
     if (rHint.GetId() != SfxHintId::SwLegacyModify)
         return;
     auto pLegacy = static_cast<const sw::LegacyModifyHint*>(&rHint);
@@ -2908,7 +2918,6 @@ void SwCursorShell::SwClientNotify(const SwModify&, const 
SfxHint& rHint)
         nWhich = RES_OBJECTDYING;
     if( m_bCallChgLnk &&
         ( !isFormatMessage(nWhich)
-                || nWhich == RES_FMT_CHG
                 || nWhich == RES_UPDATE_ATTR
                 || nWhich == RES_ATTRSET_CHG ))
         // messages are not forwarded
diff --git a/sw/source/core/doc/docfmt.cxx b/sw/source/core/doc/docfmt.cxx
index de03888e4380..17368ba8fcd7 100644
--- a/sw/source/core/doc/docfmt.cxx
+++ b/sw/source/core/doc/docfmt.cxx
@@ -651,9 +651,9 @@ void SwDoc::SetDefault( const SfxItemSet& rSet )
             aOld.ClearItem( RES_PARATR_TABSTOP );
             if( bChg )
             {
-                SwFormatChg aChgFormat( mpDfltCharFormat.get() );
+                SwFormatChangeHint aChgFormat( mpDfltCharFormat.get(), 
mpDfltCharFormat.get() );
                 // notify the frames
-                aCallMod.CallSwClientNotify(sw::LegacyModifyHint( &aChgFormat, 
&aChgFormat ));
+                aCallMod.CallSwClientNotify(aChgFormat);
             }
         }
     }
diff --git a/sw/source/core/doc/docftn.cxx b/sw/source/core/doc/docftn.cxx
index 0031b1530ca7..cbce97a20fbb 100644
--- a/sw/source/core/doc/docftn.cxx
+++ b/sw/source/core/doc/docftn.cxx
@@ -252,13 +252,16 @@ void SwEndNoteInfo::SwClientNotify( const SwModify& 
rModify, const SfxHint& rHin
         switch(pLegacyHint->GetWhich())
         {
             case RES_ATTRSET_CHG:
-            case RES_FMT_CHG:
                 UpdateFormatOrAttr();
                 break;
             default:
                 CheckRegistration( pLegacyHint->m_pOld );
         }
     }
+    else if (rHint.GetId() == SfxHintId::SwFormatChange)
+    {
+        UpdateFormatOrAttr();
+    }
     else if (rHint.GetId() == SfxHintId::SwModifyChanged)
     {
         auto pModifyChangedHint = static_cast<const 
sw::ModifyChangedHint*>(&rHint);
diff --git a/sw/source/core/doc/docredln.cxx b/sw/source/core/doc/docredln.cxx
index 2a49c24c6089..6d5a9247baae 100644
--- a/sw/source/core/doc/docredln.cxx
+++ b/sw/source/core/doc/docredln.cxx
@@ -1714,7 +1714,7 @@ void SwRangeRedline::InvalidateRange(Invalidation const 
eWhy)
             SwUpdateAttr aHt(
                 n == nSttNd ? nSttCnt : 0,
                 n == nEndNd ? nEndCnt : pNd->GetText().getLength(),
-                RES_FMT_CHG);
+                RES_UPDATEATTR_FMT_CHG);
 
             pNd->TriggerNodeUpdate(sw::LegacyModifyHint(&aHt, &aHt));
 
diff --git a/sw/source/core/doc/fmtcol.cxx b/sw/source/core/doc/fmtcol.cxx
index cbb95cfd162e..daecd6760bd6 100644
--- a/sw/source/core/doc/fmtcol.cxx
+++ b/sw/source/core/doc/fmtcol.cxx
@@ -139,9 +139,8 @@ void SwTextFormatColl::SwClientNotify(const SwModify& 
rModify, const SfxHint& rH
         CallSwClientNotify(rHint);
         return;
     }
-    else if (rHint.GetId() != SfxHintId::SwLegacyModify)
+    else if (rHint.GetId() != SfxHintId::SwLegacyModify && rHint.GetId() != 
SfxHintId::SwFormatChange)
         return;
-    auto pLegacy = static_cast<const sw::LegacyModifyHint*>(&rHint);
     if(GetDoc()->IsInDtor())
     {
         SwFormatColl::SwClientNotify(rModify, rHint);
@@ -157,33 +156,68 @@ void SwTextFormatColl::SwClientNotify(const SwModify& 
rModify, const SfxHint& rH
     const bool 
bAssignedToListLevelOfOutlineStyle(IsAssignedToListLevelOfOutlineStyle());
     const SwNumRuleItem* pNewNumRuleItem( nullptr );
 
-    const SwAttrSetChg *pNewChgSet = nullptr,  *pOldChgSet = nullptr;
-    const auto pOld = pLegacy->m_pOld;
-    const auto pNew = pLegacy->m_pNew;
-    switch( pLegacy->GetWhich() )
-    {
-    case RES_ATTRSET_CHG:
-        // Only recalculate if we're not the sender!
-        pNewChgSet = &pNew->StaticWhichCast(RES_ATTRSET_CHG);
-        pOldChgSet = &pOld->StaticWhichCast(RES_ATTRSET_CHG);
-        pNewFirstLineIndent = 
pNewChgSet->GetChgSet()->GetItemIfSet(RES_MARGIN_FIRSTLINE, false);
-        pNewTextLeftMargin = 
pNewChgSet->GetChgSet()->GetItemIfSet(RES_MARGIN_TEXTLEFT, false);
-        pNewRightMargin = 
pNewChgSet->GetChgSet()->GetItemIfSet(RES_MARGIN_RIGHT, false);
-        pNewULSpace = pNewChgSet->GetChgSet()->GetItemIfSet( RES_UL_SPACE, 
false );
-        aFontSizeArr[0] = pNewChgSet->GetChgSet()->GetItemIfSet( 
RES_CHRATR_FONTSIZE, false );
-        aFontSizeArr[1] = pNewChgSet->GetChgSet()->GetItemIfSet( 
RES_CHRATR_CJK_FONTSIZE, false );
-        aFontSizeArr[2] = pNewChgSet->GetChgSet()->GetItemIfSet( 
RES_CHRATR_CTL_FONTSIZE, false );
-        // #i70223#, #i84745#
-        // check, if attribute set is applied to this paragraph style
-        if ( bAssignedToListLevelOfOutlineStyle &&
-             pNewChgSet->GetTheChgdSet() == &GetAttrSet() )
+    if (rHint.GetId() == SfxHintId::SwLegacyModify)
+    {
+        auto pLegacy = static_cast<const sw::LegacyModifyHint*>(&rHint);
+        const auto pNew = pLegacy->m_pNew;
+        const SwAttrSetChg *pNewChgSet = nullptr;
+
+        switch( pLegacy->GetWhich() )
         {
-            pNewNumRuleItem = pNewChgSet->GetChgSet()->GetItemIfSet( 
RES_PARATR_NUMRULE, false );
-        }
+        case RES_ATTRSET_CHG:
+            // Only recalculate if we're not the sender!
+            pNewChgSet = &pNew->StaticWhichCast(RES_ATTRSET_CHG);
+            pNewFirstLineIndent = 
pNewChgSet->GetChgSet()->GetItemIfSet(RES_MARGIN_FIRSTLINE, false);
+            pNewTextLeftMargin = 
pNewChgSet->GetChgSet()->GetItemIfSet(RES_MARGIN_TEXTLEFT, false);
+            pNewRightMargin = 
pNewChgSet->GetChgSet()->GetItemIfSet(RES_MARGIN_RIGHT, false);
+            pNewULSpace = pNewChgSet->GetChgSet()->GetItemIfSet( RES_UL_SPACE, 
false );
+            aFontSizeArr[0] = pNewChgSet->GetChgSet()->GetItemIfSet( 
RES_CHRATR_FONTSIZE, false );
+            aFontSizeArr[1] = pNewChgSet->GetChgSet()->GetItemIfSet( 
RES_CHRATR_CJK_FONTSIZE, false );
+            aFontSizeArr[2] = pNewChgSet->GetChgSet()->GetItemIfSet( 
RES_CHRATR_CTL_FONTSIZE, false );
+            // #i70223#, #i84745#
+            // check, if attribute set is applied to this paragraph style
+            if ( bAssignedToListLevelOfOutlineStyle &&
+                 pNewChgSet->GetTheChgdSet() == &GetAttrSet() )
+            {
+                pNewNumRuleItem = pNewChgSet->GetChgSet()->GetItemIfSet( 
RES_PARATR_NUMRULE, false );
+            }
 
-        break;
+            break;
 
-    case RES_FMT_CHG:
+        case RES_MARGIN_FIRSTLINE:
+            pNewFirstLineIndent = &pNew->StaticWhichCast(RES_MARGIN_FIRSTLINE);
+            break;
+        case RES_MARGIN_TEXTLEFT:
+            pNewTextLeftMargin = &pNew->StaticWhichCast(RES_MARGIN_TEXTLEFT);
+            break;
+        case RES_MARGIN_RIGHT:
+            pNewRightMargin = &pNew->StaticWhichCast(RES_MARGIN_RIGHT);
+            break;
+        case RES_UL_SPACE:
+            pNewULSpace = &pNew->StaticWhichCast(RES_UL_SPACE);
+            break;
+        case RES_CHRATR_FONTSIZE:
+            aFontSizeArr[0] = &pNew->StaticWhichCast(RES_CHRATR_FONTSIZE);
+            break;
+        case RES_CHRATR_CJK_FONTSIZE:
+            aFontSizeArr[1] = &pNew->StaticWhichCast(RES_CHRATR_CJK_FONTSIZE);
+            break;
+        case RES_CHRATR_CTL_FONTSIZE:
+            aFontSizeArr[2] = &pNew->StaticWhichCast(RES_CHRATR_CTL_FONTSIZE);
+            break;
+        // #i70223#
+        case RES_PARATR_NUMRULE:
+            if (bAssignedToListLevelOfOutlineStyle)
+            {
+                pNewNumRuleItem = &pNew->StaticWhichCast(RES_PARATR_NUMRULE);
+            }
+            break;
+        default:
+            break;
+        }
+    }
+    else // rHint.GetId() == SfxHintId::SwFormatChange
+    {
         if( GetAttrSet().GetParent() )
         {
             const SfxItemSet* pParent = GetAttrSet().GetParent();
@@ -197,38 +231,6 @@ void SwTextFormatColl::SwClientNotify(const SwModify& 
rModify, const SfxHint& rH
             // #i66431# - modify has to be propagated, because of new parent 
format.
             bNewParent = true;
         }
-        break;
-
-    case RES_MARGIN_FIRSTLINE:
-        pNewFirstLineIndent = &pNew->StaticWhichCast(RES_MARGIN_FIRSTLINE);
-        break;
-    case RES_MARGIN_TEXTLEFT:
-        pNewTextLeftMargin = &pNew->StaticWhichCast(RES_MARGIN_TEXTLEFT);
-        break;
-    case RES_MARGIN_RIGHT:
-        pNewRightMargin = &pNew->StaticWhichCast(RES_MARGIN_RIGHT);
-        break;
-    case RES_UL_SPACE:
-        pNewULSpace = &pNew->StaticWhichCast(RES_UL_SPACE);
-        break;
-    case RES_CHRATR_FONTSIZE:
-        aFontSizeArr[0] = &pNew->StaticWhichCast(RES_CHRATR_FONTSIZE);
-        break;
-    case RES_CHRATR_CJK_FONTSIZE:
-        aFontSizeArr[1] = &pNew->StaticWhichCast(RES_CHRATR_CJK_FONTSIZE);
-        break;
-    case RES_CHRATR_CTL_FONTSIZE:
-        aFontSizeArr[2] = &pNew->StaticWhichCast(RES_CHRATR_CTL_FONTSIZE);
-        break;
-    // #i70223#
-    case RES_PARATR_NUMRULE:
-        if (bAssignedToListLevelOfOutlineStyle)
-        {
-            pNewNumRuleItem = &pNew->StaticWhichCast(RES_PARATR_NUMRULE);
-        }
-        break;
-    default:
-        break;
     }
 
     // #i70223#
@@ -359,8 +361,23 @@ void SwTextFormatColl::SwClientNotify(const SwModify& 
rModify, const SfxHint& rH
     }
 
     // if the parent changed, we can't know how many properties are involved: 
always notify a change
-    if (bNewParent || !nNoNotify || (pOldChgSet && 
pOldChgSet->GetChgSet()->Count() > nNoNotify))
-        SwFormatColl::SwClientNotify(rModify, rHint);
+    if (rHint.GetId() == SfxHintId::SwLegacyModify)
+    {
+        auto pLegacy = static_cast<const sw::LegacyModifyHint*>(&rHint);
+        const auto pOld = pLegacy->m_pOld;
+        const SwAttrSetChg *pOldChgSet = nullptr;
+
+        if( pLegacy->GetWhich() == RES_ATTRSET_CHG)
+            pOldChgSet = &pOld->StaticWhichCast(RES_ATTRSET_CHG);
+
+        if (bNewParent || !nNoNotify || (pOldChgSet && 
pOldChgSet->GetChgSet()->Count() > nNoNotify))
+            SwFormatColl::SwClientNotify(rModify, rHint);
+    }
+    else // rHint.GetId() == SfxHintId::SwFormatChange
+    {
+        if (bNewParent || !nNoNotify)
+            SwFormatColl::SwClientNotify(rModify, rHint);
+    }
 }
 
 void SwTextFormatColl::SetLinkedCharFormat(SwCharFormat* pLink) { 
mpLinkedCharFormat = pLink; }
diff --git a/sw/source/core/doc/lineinfo.cxx b/sw/source/core/doc/lineinfo.cxx
index 94d2b02bd72a..af2094fd0c75 100644
--- a/sw/source/core/doc/lineinfo.cxx
+++ b/sw/source/core/doc/lineinfo.cxx
@@ -114,10 +114,13 @@ void SwLineNumberInfo::SetCharFormat( SwCharFormat 
*pChFormat )
 
 void SwLineNumberInfo::SwClientNotify(const SwModify&, const SfxHint& rHint)
 {
-    if (rHint.GetId() != SfxHintId::SwLegacyModify)
+    if (rHint.GetId() != SfxHintId::SwLegacyModify && rHint.GetId() != 
SfxHintId::SwFormatChange)
         return;
-    auto pLegacy = static_cast<const sw::LegacyModifyHint*>(&rHint);
-    CheckRegistration( pLegacy->m_pOld );
+    if (rHint.GetId() == SfxHintId::SwLegacyModify)
+    {
+        auto pLegacy = static_cast<const sw::LegacyModifyHint*>(&rHint);
-e 
... etc. - the rest is truncated

Reply via email to