Commit Graph
519651 Commits
Author SHA1 Message Date
Andrea Gelmini ab6ec04dd8 Fix typos
Change-Id: I8b4a9933b3c3df1871a7eb94023f0d0fd451afd1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209902
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
2026-08-25 11:32:16 +02:00
Andrea Gelmini dcc6b53e0c Fix typos
Change-Id: Iffb8e4d53fa6a3b9f4c2a1a5e2547bef60c8304d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209940
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-25 11:31:10 +02:00
Andrea Gelmini d7a14050a6 Fix typos
Change-Id: Idd2b49ade1836ef974ed2786cf233a59571b49fc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209927
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-25 11:30:19 +02:00
Andrea Gelmini ac5aeb3dc7 Fix typos
Change-Id: Ia69fe9989c414ebb69ed6365cc882be4fea38576
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209945
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-25 11:29:19 +02:00
Andrea Gelmini bfc5912fbb Fix typos
Change-Id: I6fe3f626864db63b1c5ce8af9598730057a9d0eb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209943
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-25 11:28:37 +02:00
Andrea Gelmini 3852fcbb21 Fix filename in license
Change-Id: I7cd6a775299889aa42aabecba9eea7a978dbceac
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209929
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-08-25 11:26:41 +02:00
Andrea Gelmini 951ea46e65 Fix typos
Change-Id: I6dd6c187b2f539c8c3e885aa57f3b733f107cbb3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209916
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-25 11:25:40 +02:00
Andrea Gelmini 7ea3d23dab Fix typos
Change-Id: I66a132543f08b1ca84241e50fcfbc1d647e49dd9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209886
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-25 11:24:49 +02:00
Andrea Gelmini 08a814d780 Fix typos
Change-Id: I9ceb9a32f86c8fde3eb53533e3de8c0905973630
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209939
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-25 11:22:43 +02:00
Andrea Gelmini 255573991a Fix typos
Change-Id: I929da9f407d69af5c6ac77f65adf547fef5829aa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209942
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-25 11:17:36 +02:00
Caolán McNamara ecd9ee7aa1 pass a referer through setSvxBrushItemAsFillAttributesToTargetSet
SvxBrushItem::GetGraphic wants the name of the document the brush came
from, so take it as an argument and hand in SwDoc::GetLinkReferer
wherever a document is at hand, the Writer style, frame and background
shell paths included.

The dialog and example-window callers pass the name of the active
document shell through a new svx helper getActiveDocumentLinkReferer.

The hand-rolled copies of the GetPersist, HasName, GetMedium GetName
sequence elsewhere in sw now call SwDoc::GetLinkReferer too.

Change-Id: I8693d27869baed79962b2d5bdcb7b7e2c63227bb
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8200
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 18f91ac71710027479dfe9f206ae2207bad8f2b7)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209827
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-08-25 11:16:39 +02:00
Andrea Gelmini 77530bf49b Fix typo
Change-Id: Iff6da5ec2b28b55ec5a2e7f84580e21a9539c108
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209946
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-25 11:16:26 +02:00
Andrea Gelmini 38dee081a7 Fix typos
Change-Id: Ie48eb85c6460bdbeda180cf12e27576bd1935b7c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209934
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-25 11:14:41 +02:00
Andrea Gelmini 1d2bd7e4ff Fix typos
Change-Id: I80f652b06703b4cce2dd30e3b1dbc47b4896a83f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209941
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-25 11:13:25 +02:00
Andrea Gelmini a5040952ce Fix typos
Change-Id: I0e8c119f9a70ed1217ba576f5d6dda24c1580b41
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209923
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-25 11:07:12 +02:00
Andrea Gelmini fab67da209 Fix typos
Change-Id: I562dc88fb193c4bba8904a524cbd6b8596cf4bb6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209887
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-25 11:06:25 +02:00
Andrea Gelmini c8e5d31373 Fix typos
Change-Id: Iaddf25ad5b16f8c8dee51fbea1814287f2c18e1c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209921
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-25 11:05:23 +02:00
Andrea Gelmini 2bcb2e8591 Fix typos
Change-Id: I88ba11f0f4f86ff8804dd956ed3748ec68264657
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209915
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-25 11:04:19 +02:00
Andrea Gelmini 2f87617fb2 Fix typos
Change-Id: I7216801a3e1f44560e82ae27d7cdb66600f1d31b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209884
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-25 11:02:33 +02:00
Andrea Gelmini 40212c0e3e Fix typos
Change-Id: I2bde2a3f900ba0a5d517ad30a1101e2118eea170
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209905
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-25 10:58:11 +02:00
Andrea Gelmini 4f134f4de1 Fix typos
Change-Id: I0c03b72585a5d54411f911fbb1fd47b59b7c1746
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209937
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
2026-08-25 10:57:34 +02:00
Andrea Gelmini cdf492e4d0 Fix typos
Change-Id: Ia0e1db4e5a453479b094ffa25ab7479529dcf2ea
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209932
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-25 10:56:51 +02:00
Andrea Gelmini a3e76613a0 Fix typos
Change-Id: I728a720c0ab6889a901b589d636b904e69f53c82
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209888
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
2026-08-25 10:41:49 +02:00
Andrea Gelmini aae006522f Fix typos
Change-Id: I9d41f9ab9cf8d9d547159de79bd7eaebba55491b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209912
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-25 10:40:57 +02:00
Andrea Gelmini 6b0147ee90 Fix typos
Change-Id: I9d569b60aede100357559196eff4e59cbe016aa5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209925
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-25 10:39:47 +02:00
Andrea Gelmini ee5def8d00 Fix typos
Change-Id: Iff751d10f2bbeee938484ac8e563d918e8b3d8da
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209917
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-25 10:38:59 +02:00
Andrea Gelmini e8880e76a6 Fix typos
Change-Id: Ic3882680e3a0f0aba4afae064c0aac0838d4b920
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209893
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-25 10:37:54 +02:00
Andrea Gelmini 892dcd7597 Fix typos
Change-Id: I9351b0b67805f2e8b9994aa95f75b2aadba15aa2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209883
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-25 10:36:52 +02:00
Süleyman Çoban cf6df00a83 tdf#143148: Use pragma once instead of include guards
Replace include guards with pragma once in header file

Change-Id: Ib7b7a89fff26729540137202da9501b518a6d4d7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209020
Tested-by: Jenkins
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2026-08-25 10:04:08 +02:00
Andrea Gelmini 336e4b1d4d Fix typos
Change-Id: I57252033bc162009de25497d35cd929096021cc1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209892
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-25 09:18:26 +02:00
Andrea Gelmini 6df13adec5 Fix typos
Change-Id: If17581ad1217019ba7c135dbc9f4a223f6cced48
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209911
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-25 09:15:50 +02:00
Andrea Gelmini 761031c65b Fix typos
Change-Id: Iceedcc9d63857dc6578892bf9ae23d9413d79320
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209903
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
2026-08-25 09:15:09 +02:00
Andrea Gelmini fe914e74f5 Fix typos
Change-Id: If42f02957a45b296dd5ab524a1cca85f94d5cded
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209906
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-25 09:13:46 +02:00
Andrea Gelmini 39182dec5e Fix typos
Change-Id: I603fc49a24d518f12d8acc7d5f8fc5dfd9eae38f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209928
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-25 09:12:08 +02:00
Andrea Gelmini 1bb9c04b05 Fix typos
Change-Id: I6519ca8172ea154dab73810c1e470da6cb3dc101
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209926
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-25 09:11:31 +02:00
Andrea Gelmini ae7ec954a9 Fix typos
Change-Id: I8abde57ed824155273dd2fff96fb53adb2d3dca2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209908
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-25 09:10:44 +02:00
Kurt Nordback 160014f44b Initial implementation of rendering for funnel charts
Framework for funnel chart rendering. For now this just renders them as
horizontal bar charts: that is, not properly centred as a funnel. UI
functionality is untested and probably broken.

Signed-off-by: Kurt Nordback <kurt.nordback@collabora.com>
Change-Id: I3a0e923b801c840138c90dcf3609253a467d23d1
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/7905
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
(cherry picked from commit 172e4233b70f1d73ca942876f3f47458843ffa36)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209739
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-25 08:52:54 +02:00
Caolán McNamara 8749466df2 sc: convert remaining raw ScPatternAttr* class members to CellAttributeHolder
We have added various workarounds for ScPatternAttr use after free
issues since:

  commit 2e1f9da8a6
  Date:   Sat Dec 23 15:52:06 2023 +0100
      Decouple ScPatternAttr from SfxItemPool

separated ScPatternAttr from SfxItemPool.

Prior to that an ScPatternAttr was an SfxPoolItem held in the doc's
SfxItemPool which kept every item alive for the document's whole
lifetime, so any raw const ScPatternAttr* was basically safe.

The various workarounds for the new behaviour were:

  commit dca19993a4c732e95b9a47e1abdcaad6efbeebe9
  Date:   Sat Jan 6 14:40:28 2024 +0100
      tdf#159042: crash after changing cell style (if direct formatting done)

  commit 19437715eb415fe2c40b8b40dbe04ddca28f9a35
  Date:   Thu Sep 12 12:06:28 2024 +0100
      null pattern deref seen in ScViewData::SetEditEngine

  commit e384f2e8de9603ee65a3edc6dcb50b07116ee4fc
  Date:   Mon Mar 10 14:45:22 2025 +0000
      crashtesting: crash on reimport of xlsx output of forum-pl-2758.ods

  commit 7999585bd8378f1a8d04ea2a9a93a8e0bf4d8eb6
  Date:   Fri May 9 08:50:17 2025 +0100
      crash on null pattern de-ref

  commit 1bf9bbea96
  Date:   Tue Oct 28 16:53:49 2025 +0300
      tdf#169115: sc: fix use-after-free bug in ScDocument::FillInfo

  commit 9f366af81478ad218dc2ef2e37423a9ebcc84e73
  Date:   Sat Apr 25 14:47:02 2026 +0200
      ScPatternAttr use-after-free

  commit 20fe691a18fb35120d0765dd1519acd6d2986c38
  Date:   Tue Apr 28 08:33:34 2026 +0200
      ScPatternAttr use-after-free (2)

This commit picks the class member fields that are still raw
ScPatternAttr* and converts them to CellAttributeHolder:

  ScUsedAreaIterator::pPattern and pFoundPattern
  ScInputHandler::pLastPattern
  LotAttrCol::ENTRY::pPattAttr
  ScPatternCache::Entry::pPattern

The CalcAll() workaround from 9f366af81478 then doesn't seem to be needed(?)

A new compiler plugin catches class member fields of raw type
ScPatternAttr pointer.

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ibb9f28b8fcaa5470c7a82eee52900c2d60434e41
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/3163
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
(cherry picked from commit 9c7b6313a29067bf0eef12884fc3ce7efb0374e5)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209822
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-08-25 08:52:44 +02:00
Mike Kaganski 45225d31c4 sw: keep the drag start point in a Point
The two coordinate statics were always written and read together, and
every reader outside the edit window built a Point out of them anyway.

Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: I7333728d5c51a15d435bd9ced2f1d8770f1e10c7
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8999
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
(cherry picked from commit f7f785e565b208649065441ccbd0f0d056f3e29d)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209829
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-08-25 08:52:33 +02:00
Caolán McNamara dfc2a54bce ofz: fix harfbuzz msan build
since:

commit 6a3e455381
Date:   Sat Aug 1 02:25:22 2026 +0300

    harfbuzz: pass -fvisibility=hidden as a meson option

==3201==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x555d9cd44009 in operator() /src/libreoffice/vcl/source/gdi/CommonSalLayout.cxx:663:38
    #1 0x555d9cd44009 in GenericSalLayout::LayoutText(vcl::text::ImplLayoutArgs&, SalLayoutGlyphsImpl const*) vcl/source/gdi/CommonSalLayout.cxx:684:25
    #2 0x555d9c96a880 in OutputDevice::ImplLayout(rtl::OUString const&, int, int, Point const&, long, std::__1::span<double const, 18446744073709551615ul>, std::__1::span<unsigned char const, 18446744073709551615ul>, SalLayoutFlags, vcl::text::TextLayoutCache const*, SalLayoutGlyphs const*, std::__1::optional<int>, std::__1::optional<int>, std::__1::optional<int>) const vcl/source/outdev/text.cxx:1269:36

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I43dd3901f78b33b85e9f8e224f287a145f4510fa
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/9753
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
(cherry picked from commit 8184a699b28e83f8209f73f66e0c7c2a43f2b2d9)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209830
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-08-25 08:52:25 +02:00
Andrea Gelmini b5e9a38e7d Fix typos
Change-Id: I3e51eda80647bbb7996a8cfab637160b4aeaf0a6

Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209770
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-25 06:52:22 +02:00
Xisco Fauli 3ccbe52554 tdf#173254: filter: do not use 'using namespace' in header files
Change-Id: I689bebe2f3ae07a92c5b64519a4fed504431908e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209821
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-24 23:07:27 +02:00
Mike Kaganski db23488a24 sw: extract a helper for arming a frame drag
The same four lines stood at five press-handling sites; the last of them
came with 3efae0655f0d26f0686560ae00ed57ca45f654a5 (sw: drag after text
edit used a stale start point, 2026-08-02).

Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: I8f64d5855818f0d1e2166906033e3fb3eba0f104
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8995
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 16501dab9627e77dd3bcf640e091141b7aa7508a)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209828
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-08-24 23:02:35 +02:00
Christopher Sherlock 770ef72c44 vcl: simplify LogicToPixel(Polygon) with new mapper wrappers
This commit continues the cleanup of map.cxx by refactoring the
Polygon overload of OutputDevice::LogicToPixel to use the new
explicit ImplMapRes wrappers.

Key changes:
- Replaced the nested ViewToWindowUnits(LogicUnitsToViewUnits(...))
  calls with the much cleaner LogicToWindowUnitsX/Y(..., aMapRes)
  master wrappers.
- Removed legacy C-style pointer arithmetic (GetConstPointAry) in
  favor of directly accessing and assigning to the polygon via the
  overloaded operator[].
- Eliminated the temporary Point allocation and sequential setX/setY
  calls, replacing them with a direct inline Point constructor.
- This dramatically improves the readability of the loop while
  maintaining identical coordinate transformation behavior.

Change-Id: I25252b99f5fc8e1b7097d766cd74ac6e7e8f3e80
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203669
Tested-by: Jenkins
Reviewed-by: Dan Williams <dcbw@libreoffice.org>
2026-08-24 18:54:37 +02:00
Christopher Sherlock 726c525f1e vcl: add explicit map resolution overloads for LogicToWindowUnits
This commit improves the encapsulation of custom MapMode conversions
by adding ImplMapRes overloads to the LogicToWindowUnits master
wrappers in CoordinateMapper.

Previously, when OutputDevice::LogicToPixel was called with an
explicit custom MapMode, it had to bypass the standard wrappers and
manually chain the LogicUnitsToViewUnits and ViewToWindowUnits
pipeline stages inline. This resulted in highly verbose and difficult-
to-read rectangle initialization.

Key changes:
- Added LogicToWindowUnitsX(nX, rRes) and LogicToWindowUnitsY to
  CoordinateMapper to safely encapsulate custom resolution scaling
  while still applying the correct internal window offsets.
- Refactored OutputDevice::LogicToPixel(Rectangle, MapMode) in
  map.cxx to use these new wrappers, drastically improving the
  readability of the coordinate mapping logic.

Change-Id: Ib3af5314ad11653395b08c2ca722d66360baeb99
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203668
Tested-by: Jenkins
Reviewed-by: Dan Williams <dcbw@libreoffice.org>
2026-08-24 18:52:43 +02:00
Christopher Sherlock adf3a4e560 vcl: utilize CoordinateMapper wrappers to simplify map.cxx
This commit replaces manual coordinate arithmetic in map.cxx with the
newly introduced CoordinateMapper pipeline stages and master wrappers,
improving encapsulation and fixing a subtle offset bug.

Key changes:
- OutputDevice::LogicToDeviceSubPixel: Replaced nested pipeline calls
  and manual device origin additions with the LogicToDeviceSubPixel
  master wrapper. This completely hides the math from map.cxx and
  ensures the absolute logical offset (mnOutOffLogic) is correctly
  applied before any DPI/MapMode scaling occurs.

- OutputDevice::ImplPixelToDevicePixel: Fixed an early-exit bug. The
  legacy code only checked if the screen origin (mnOutOff) was zero
  before returning early, completely ignoring whether the window had an
  internal VCL pixel offset (mnOutOffOrig). By piping `0` through
  ViewToWindowUnits and WindowToDeviceUnits, we now calculate the
  exact combined spatial delta to check for the early exit and move
  the region safely.

Change-Id: I697a0a7aa2bc4c03e55654305432b0805cee9c66
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203667
Tested-by: Jenkins
Reviewed-by: Dan Williams <dcbw@libreoffice.org>
2026-08-24 18:51:16 +02:00
Christopher Sherlock 0749bf21b3 vcl: use pipeline stages in LogicToPixel with explicit MapMode
Updates the OutputDevice::LogicToPixel variant that accepts an
explicit MapMode to utilize CoordinateMapper pipeline stages.

Previously, this method manually composed the transformation by
adding ImplMapRes offsets, calling LogicToViewDistance, and then
adding the internal VCL pixel offset (mnOutOffOrigX/Y).

By refactoring this to use LogicUnitsToViewUnitsX/Y(nX, aMapRes)
nested within ViewToWindowUnitsX/Y, we maintain architectural
consistency with the rest of the mapper refactor. This ensures
that even when using a temporary resolution context, the coordinate
journey follows the standardized Logic -> View -> Window path
without exposing raw arithmetic in OutputDevice.

Change-Id: Ie39cf7d67d6461f418c942528abbbffbf7f9a7bc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203663
Tested-by: Jenkins
Reviewed-by: Dan Williams <dcbw@libreoffice.org>
2026-08-24 18:50:09 +02:00
Christopher Sherlock ff91a6fed5 vcl: add LogicToWindowUnits wrappers to simplify forward pipeline
Introduces LogicToWindowUnitsX and LogicToWindowUnitsY to the
CoordinateMapper API. These master wrappers chain the first two
stages of the forward transformation pipeline (LogicUnits -> View
-> Window), cleanly stopping before the final physical screen
offset is applied.

This addition is immediately put to use in map.cxx to refactor
OutputDevice::LogicToPixel for both Rectangles and Polygons.
It successfully collapses complex, nested inline arithmetic—such
as the manual scaling of logical offsets and the explicit addition
of internal VCL pixel offsets (mnOutOffOrigX/Y)—into single,
highly semantic API calls.

OutputDevice is now further isolated from the underlying mechanics
of the coordinate mapping math, continuing the encapsulation
goals of the mapper refactor.

Change-Id: Ifbc49b3c8ba5a84d864fe9a6626dcf587039241d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203662
Tested-by: Jenkins
Reviewed-by: Dan Williams <dcbw@libreoffice.org>
2026-08-24 18:48:36 +02:00
Alain Romedenne 57dd8e57ca Update git submodules
* Update helpcontent2 from branch 'master'
  to 5fb83328fe56e943ed64415ce2b5844cc0c6940f
  - os variants precisions
    
    Change-Id: I50b9d61b03236474e218b88748317f2806cf00d9
    Reviewed-on: https://gerrit.libreoffice.org/c/help/+/209882
    Reviewed-by: Alain Romedenne <alain.romedenne@libreoffice.org>
    Tested-by: Jenkins
2026-08-24 17:39:23 +02:00
Dan Williams 2dc23dd87d tdf#171263: clip text lines to paint rect for PDF export
In the PDF export case, where a metafile is attached to the output device,
text drawing was not enabling clipping to the draw rectangle. This caused
tables with text that overflowed the table cell boundary (and thus which
should be hidden) to be drawn to the PDF.

SwTextFrame::PaintSwFrame() must first create the SwSaveClip helper with
a valid OutputDevice and then SwTextPainter::DrawTextLine() must actually
update the clip region on the helper, which happened in the OnWin() case
but not for PDF export (where OnWin() is false).

Change-Id: Ic89371cd59b2c5bde2962767b2da67a0e8b9ad4e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209015
Tested-by: Jenkins
Reviewed-by: Dan Williams <dcbw@libreoffice.org>
2026-08-24 16:15:25 +02:00