Commit graph

702 commits

Author SHA1 Message Date
Mike Kaganski
962bd03938 Simplify a bit
SVG diagonal percentage distances are defined in terms of
viewBox diagonal length divided by sqrt(2) (normalized).

See https://svgwg.org/svg2-draft/coords.html#Units

Change-Id: I0d2101315d5f6c3333d021251eff17f6c13e804f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175991
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2024-11-05 06:36:16 +01:00
Chris Sherlock
bc2ff9daf5 vcl: move bitmap filter headers into vcl/bitmap global header directory
Use #pragma once instead of header guards

Change-Id: Iba43f2103628ed184933cf2611991e7aef9f0173
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173369
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Tested-by: Jenkins
2024-10-21 09:45:21 +02:00
Mike Kaganski
a6a6921123 Use good old string literals in assertXPath and friends
These are only sent to an external API expecting char*-like strings,
or for comparison. Having every assertXPath having three of _[ou]str
is too much syntactic noise, making the unit tests almost unreadable.

Change-Id: Ic004a36ea75e7bfe0b96f405c40f926a957b51cc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174416
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2024-10-05 10:06:44 +02:00
Andrea Gelmini
76e8a1a2d7 Fix typo
Change-Id: I48ef74823ee2574439c977098f412d6a885af57d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174403
Tested-by: Jenkins
Reviewed-by: Andrea Gelmini <andrea.gelmini@gelma.net>
2024-10-03 08:33:23 +02:00
Xisco Fauli
16684eb4ba tdf#163212: context-fill/context-stroke can also use gradients
Change-Id: Ic6f7f5e0817d8f5fccee64938004aa899bde47dc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174382
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2024-10-02 14:31:47 +02:00
Chris Sherlock
5b54f68599 vcl: migrate BitmapArithmeticBlendFilter to use BitmapFilter class
Change-Id: I524b8c87747b79a8698cce4bd092493ffc9c1235
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173350
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2024-09-20 22:53:17 +02:00
Balazs Varga
b6775ce2b3 Temporarily skip unit tests on native arm64 build
which indicating unit test fails.

Change-Id: I2689b0dda888e15e52ca60cc18e1705a1aefe968
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173143
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
Tested-by: Jenkins
2024-09-12 09:37:26 +02:00
Mike Kaganski
8bd57009d3 Fix wrong / misleading uses of fTools::(more|less|equal) with literal 0
These will never compare with tolerance (the zero is a special case
in rtl_math_approxEqual used internally), so the calls like those
don't do what they appear to do in these cases.

Change-Id: I495ac92b7f45637e118e4fdc04bb6fad6fff31ab
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171391
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2024-08-02 11:31:00 +02:00
Caolán McNamara
07d3577569 cid#1555417 COPY_INSTEAD_OF_MOVE
and

cid#1555423 COPY_INSTEAD_OF_MOVE
cid#1555430 COPY_INSTEAD_OF_MOVE
cid#1555436 COPY_INSTEAD_OF_MOVE
cid#1555440 COPY_INSTEAD_OF_MOVE
cid#1555443 COPY_INSTEAD_OF_MOVE
cid#1555454 COPY_INSTEAD_OF_MOVE
cid#1555459 COPY_INSTEAD_OF_MOVE
cid#1555461 COPY_INSTEAD_OF_MOVE
cid#1555468 COPY_INSTEAD_OF_MOVE
cid#1555477 COPY_INSTEAD_OF_MOVE
cid#1555484 COPY_INSTEAD_OF_MOVE
cid#1555511 COPY_INSTEAD_OF_MOVE
cid#1555515 COPY_INSTEAD_OF_MOVE
cid#1555519 COPY_INSTEAD_OF_MOVE
cid#1555534 COPY_INSTEAD_OF_MOVE
cid#1555537 COPY_INSTEAD_OF_MOVE
cid#1555544 COPY_INSTEAD_OF_MOVE
cid#1555553 COPY_INSTEAD_OF_MOVE
cid#1555559 COPY_INSTEAD_OF_MOVE
cid#1555561 COPY_INSTEAD_OF_MOVE
cid#1555563 COPY_INSTEAD_OF_MOVE
cid#1555564 COPY_INSTEAD_OF_MOVE
cid#1555568 COPY_INSTEAD_OF_MOVE
cid#1555571 COPY_INSTEAD_OF_MOVE
cid#1555580 COPY_INSTEAD_OF_MOVE

Change-Id: Ia42a78bffddc80d0e82144f4db51dc6e4d2e9a1d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171237
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-07-31 09:33:06 +02:00
Caolán McNamara
82b7823cd8 cid#1555070 COPY_INSTEAD_OF_MOVE
and

cid#1555069 COPY_INSTEAD_OF_MOVE
cid#1555128 COPY_INSTEAD_OF_MOVE
cid#1555131 COPY_INSTEAD_OF_MOVE
cid#1555137 COPY_INSTEAD_OF_MOVE
cid#1555142 COPY_INSTEAD_OF_MOVE
cid#1555152 COPY_INSTEAD_OF_MOVE
cid#1555154 COPY_INSTEAD_OF_MOVE
cid#1555161 COPY_INSTEAD_OF_MOVE
cid#1555163 COPY_INSTEAD_OF_MOVE

Change-Id: I86a5b7049ac8f31ca703add11381f5293233d9d3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170863
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-07-23 09:19:37 +02:00
Armin Le Grand (Collabora)
45c45e97e1 CairoSDPR: make use of RGBA PolyPolygon in more cases
Change-Id: I7cd93e5452bce96eef295c766f4cb391ddd67250
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170792
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
Tested-by: Jenkins
2024-07-20 19:31:36 +02:00
Caolán McNamara
4504d921a6 cid#1555694 COPY_INSTEAD_OF_MOVE
and

cid#1555695 COPY_INSTEAD_OF_MOVE
cid#1555696 COPY_INSTEAD_OF_MOVE
cid#1555705 COPY_INSTEAD_OF_MOVE
cid#1555711 COPY_INSTEAD_OF_MOVE
cid#1555713 COPY_INSTEAD_OF_MOVE
cid#1555727 COPY_INSTEAD_OF_MOVE
cid#1555742 COPY_INSTEAD_OF_MOVE
cid#1555745 COPY_INSTEAD_OF_MOVE
cid#1555749 COPY_INSTEAD_OF_MOVE
cid#1555760 COPY_INSTEAD_OF_MOVE
cid#1555773 COPY_INSTEAD_OF_MOVE
cid#1555774 COPY_INSTEAD_OF_MOVE
cid#1555778 COPY_INSTEAD_OF_MOVE
cid#1555790 COPY_INSTEAD_OF_MOVE
cid#1555831 COPY_INSTEAD_OF_MOVE
cid#1555847 COPY_INSTEAD_OF_MOVE
cid#1555851 COPY_INSTEAD_OF_MOVE
cid#1555853 COPY_INSTEAD_OF_MOVE
cid#1607763 COPY_INSTEAD_OF_MOVE
cid#1607504 COPY_INSTEAD_OF_MOVE

Change-Id: I991f15f12e773d325ed9725498df5725b049a858
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170625
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-07-17 21:49:14 +02:00
Xisco Fauli
a0e6135270 svgio: simplify and rename to make it easier to understand
Change-Id: Ia1cc5451d4075237f369ecda45300bccdc02c974
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170378
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-07-11 17:34:00 +02:00
Xisco Fauli
8c5f93ee35 tdf#161985: getOpacity is also called from other places
Partially revert 56039daae4
"tdf#149673: only check opacity from parent..." to make
getOpacity behave as before and move the new behaviour
of getOpacity inside add_postProcess

Change-Id: If475cddbc4967308fa06adacda621cb3790c6f70
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170376
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2024-07-11 17:09:43 +02:00
Caolán McNamara
e68f28ec9f cid#1607892 COPY_INSTEAD_OF_MOVE
and

cid#1607910 COPY_INSTEAD_OF_MOVE
cid#1607818 COPY_INSTEAD_OF_MOVE
cid#1557402 COPY_INSTEAD_OF_MOVE
cid#1556530 COPY_INSTEAD_OF_MOVE
cid#1557396 COPY_INSTEAD_OF_MOVE
cid#1556522 COPY_INSTEAD_OF_MOVE
cid#1555628 COPY_INSTEAD_OF_MOVE
cid#1554705 COPY_INSTEAD_OF_MOVE

Change-Id: Iae3fbf4a04bf3714f416995640b9d70fe204cf73
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170321
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-07-11 09:26:28 +02:00
Caolán McNamara
e6c4d733f1 cid#1556474 COPY_INSTEAD_OF_MOVE
and

cid#1557319 COPY_INSTEAD_OF_MOVE
cid#1557320 COPY_INSTEAD_OF_MOVE
cid#1558101 COPY_INSTEAD_OF_MOVE
cid#1606536 COPY_INSTEAD_OF_MOVE

Change-Id: Ibe10ee3fad7f6ca1f3c5b316fdafe4bf15f0ead7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170280
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
2024-07-10 17:28:56 +02:00
Caolán McNamara
4f23893627 cid#1556123 COPY_INSTEAD_OF_MOVE
Change-Id: Ib09e27591987ac1565205cff5c1396ba674c5bfb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170101
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-07-08 16:28:39 +02:00
Xisco Fauli
d20cdbf9b6 svgio: Add missing 'rebeccapurple' color
you can find more about the sad story behind this color
in the internet

Change-Id: I0aa201bdc62aebe96f0ae764a359f1f6286027d4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169544
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2024-06-26 14:50:08 +02:00
Xisco Fauli
1a7c927f6f tdf#161213: fill can use context-stroke and vice versa
Change-Id: Id127bd4943ff1b67915d1de3ba4fcf93dab21423
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168774
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-06-13 14:47:33 +02:00
Noel Grandin
75111c745a loplugin:ostr in svgio
Change-Id: I9869f8558a69d5a6b6ac3165c627b943c00e787e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167653
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2024-05-15 12:53:22 +02:00
Xisco Fauli
3b0f96a077 tdf#155651: Add support for "context-fill"
Change-Id: I6f96cc7c059ece5f9401fc0ae552cf279e53109c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167230
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2024-05-06 22:02:01 +02:00
Caolán McNamara
66916b2081 cid#1596833 Uninitialized pointer field
Change-Id: I1f05ef494e7e28bd105b7658072c33b2d274a803
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167159
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
2024-05-05 20:21:25 +02:00
Caolán McNamara
21e0a2658a crashtesting: assert with stroke width of 4.86057e+93
on import attempt of moz1322643-3.svg

Change-Id: I5f18601767212c1eb7453aacbad076099a2a5b46
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167142
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-05-05 01:09:18 +02:00
Xisco Fauli
d75a37a582 tdf#155651: Add support for "context-stroke"
Change-Id: Ib4f4a7b644d0d6c6b36e31b80fd7adc18999110d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167024
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-05-03 11:50:42 +02:00
Xisco Fauli
99757f5e3a CppunitTest_svgio: fix mid-air collision
it was caused by 98935eef13
"tdf#159661, tdf#160773: svgio: Add unittest"
and 7f64148507
"Fix a thinko in 8a97f1ba8d9ccb65b2c89106de20666311d90c30"

This partially reverts d984836834
"Fix unit test after commit 98935eef13c7d755221d79fe7d3c5869a40a7c37"

Kudos to Mike for keeping Jenkins happy

Change-Id: I034759b2cd95cbaaeb84ec1b528bf5b61487a1e0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166591
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-25 09:21:03 +02:00
Mike Kaganski
d984836834 Fix unit test after commit 98935eef13
Similar to commit cfa9990d47 (Enable
this test on all platforms. 2024-04-20), it seems that 'mask' gets
exported inconsistently. This patch workarouns the problem; a proper
fix would be finding the real cause.

Change-Id: I94c89442aa0385262fba67ec58c9d8d12ffbea27
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166573
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-04-24 09:43:30 +02:00
Xisco Fauli
98935eef13 tdf#159661, tdf#160773: svgio: Add unittest
Change-Id: I2d0b96f13e02ac81b97ea347889c76770c22a989
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166509
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-23 14:05:04 +02:00
Xisco Fauli
851f60697d tdf#159660: also add normal blend filter
Change-Id: I3edc7495975618357f002536857a11dcc72cc0b9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166460
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-22 18:43:08 +02:00
Xisco Fauli
1097686ebd tdf#160782: convert to bitmapEx from 0,0 to width,height
This is the way it's done everywhere.
Partially revert 4b6e0f2c88
"tdf#160726, tdf#48062: Simplify how BitmapExs are created"

Change-Id: I15fea0b6855a65da7cb48b24fc00ba303e33dcf8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166456
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-22 17:38:15 +02:00
Xisco Fauli
41368edc6e tdf#159660: Add support for lighten mode in feBlend
Change-Id: I17471a9c70a38d05de5ad476f817285fb2438e5a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166429
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-22 15:20:16 +02:00
Xisco Fauli
a9f1b70527 tdf#159660: Add support for darken mode in feBlend
Change-Id: I56862163b7bf1177120081c95ab7851a5fc4019b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166428
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-22 14:55:44 +02:00
Xisco Fauli
fdf3027a0e tdf#159660: Add support for multiply mode in feBlend
Change-Id: I03230e122a10dd6ada6af357c674c278b6b99d9e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166427
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-22 14:55:37 +02:00
Xisco Fauli
357e390be4 tdf#159660: premultiply colors for screen blend
This is needed after 4b6e0f2c88
"tdf#160726, tdf#48062: Simplify how BitmapExs are created"
Otherwise, only the common area is displayed

Change-Id: I40c798380049e62df8729c4acdb5db50d988d8e1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166426
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-22 13:31:44 +02:00
Xisco Fauli
4b6e0f2c88 tdf#160726, tdf#48062: Simplify how BitmapExs are created
In my initial approach, I tranformed the primitive2DContainers
before converting them to BitmapEx. This caused circles like
https://bugs.documentfoundation.org/attachment.cgi?id=193790
not to be displayed.
Simplify how BitmapExs are created by just using the range both
primitive2DContainers have in common. This way, DrawBitmapInRect
can be dropped now

Change-Id: I2401dc87b98e04b9cf9f5ebade2b5622d884fc3a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166391
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-22 11:53:41 +02:00
Xisco Fauli
ae5e743f90 svgio: feImage and feFlood don't support the in attribute
Added by mistake in b22039cff8
"related: tdf#159947: only parse in/result if the element supports them"

See https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/in

Change-Id: Ie8b5591349eff710d1edc7f413790ac9d31df99d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166389
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-21 22:34:44 +02:00
Mike Kaganski
6e6081b340 tdf#157103: fix SVG whitespace handling
Previous code tried to hack some tricks to restore whitespaces after
trimming them according to the xml:space attribute value. But it was
wrong in multiple ways.

1. The collapsed space must stay in the block where its start was.
   When a block ended with a space, then trimming the space from it,
   and adding to a next block, can change the size of the space.
2. The shift of a line (e.g., specifying x and y values) doesn't end
   the logical line. A space before such a shift must be kept by the
   same rules, as if there weren't a shift.
3. A block with xml:space="preserve" is treated as if it consists of
   all non-whitespace characters, even if its leading or trailing
   characters are spaces. I.e., a trailing space in a block before,
   or a leading space in a block after, should be collapsed into a
   single space, not removed - even when the space-preserving block
   itself is made invisible.

Change-Id: Ic778d1e9d6b9d0c342ea74ad78d44bb47bc8d708
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166239
Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-04-20 12:16:08 +02:00
Caolán McNamara
7ba388ee8c cid#1596521 Resource leak
Change-Id: I3064195408e508f1f77d22b82ad464a651064193
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166287
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-04-20 11:52:11 +02:00
Mike Kaganski
cc3663bbae tdf#160702: improve text positioning
Opening an SVG with text in different elements (e.g., tspans) in the
same text element performs calculations to position the parts properly
(i.e., the next part will start where the previous part ended, unless
the position in overridden explicitly). These calculations require to
know the text widths. The first problem leas here: the text width was
calculated for a typically small text size (numerically equal to the
pixel size defined in the SVG), but these calculations aren't truly
linear, because font rendering may change depending on font height.
Additionally, the rounding gives much higher error in smaller sizes
than in larger. There was already a workaround for a similar problem
in ViewRedirector::createRedirectedPrimitive2DSequence, where a large
font (with 100 times greater height) was used to increase correctness.
This was also used here, with the same large height (50000) used as a
reference.

Then, at the time of wrawing the text at different zoom levels, the
code in VclProcessor2D::RenderTextSimpleOrDecoratedPortionPrimitive2D
creates a font of a calculated size, and uses it to output the text.
But the font is always created with an integral height, which means,
that for a wanted height of 2.5 (in a zoomed out view), the really
used height will be 3, which is 20% larger; or for wanted height of
2.4, the actual height will be 2 (20% smaller). This resulted in odd
jumps of the text widths, when the text may overlap the following
part, or conversely, create a big gap before the next gap. To try to
mitigate that, the function now takes the difference between the
wanted and the actual font size into account, and adjusts the MapMode
accordingly. This doesn't fix the jumping completely (e.g., because
of the mentioned special handling of small font sizes in the fonts
thenselves, like hinting), but still makes the calculations much more
stable, decreasing the amount of jumping. Similar changes are made in
TextLayouterDevice.

Use of the functions that return text size as a double, not rounded
value, should additionally help improving stability.

Change-Id: I455845d8ca43ee9c06a0fc980947f35d8a25797a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166238
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-04-20 11:28:34 +02:00
Xisco Fauli
7e0b8e74dd svgio: remove duplicated assertXPathDouble
Change-Id: I82c4abc6883d292114b4239efee60aee082357fc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166307
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-04-20 08:55:18 +02:00
Xisco Fauli
01479c742f tdf#160721: nothing is displayed in case of wrong 'in' reference
Change-Id: I746ec8a12dba7832241693dac7f20788a2fa85bb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166267
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-19 09:08:25 +02:00
Mike Kaganski
2642643ec0 tdf#160622: Let SalLayout::GetBoundRect return basegfx::B2DRectangle
This avoids premature rounding in TextLayouterDevice::getTextBoundRect.
The box in D2DWriteTextOutRenderer::performRender needs to be expanded
to allow room for the line width (which now will be guaranteed on all
sides; previously, the rounding could happen to give no room on some
side, even prior to commit 8962141a12).
Fixes some lines partially cut off in smaller text (or zoomed out).

Change-Id: I07335136021f894cf045363b4d736bfab06c64d4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166236
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-04-19 05:31:51 +02:00
Mike Kaganski
edef46e82e tdf#160717: fix ex handling
Same as in commit e275726861
(tdf#160593: make sure to use current element's font size for em unit,
2024-04-18) for em.

Change-Id: Id9003c0426a6b373456da1aa1550f7ff07f766a3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166235
Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-04-19 05:18:50 +02:00
Mike Kaganski
86a8a3a43b tdf#160594: Use the recommended fallback of 0.5em for ex in font-size
This fixes the error of identical treatment of em and ex in font-size,
which violated https://drafts.csswg.org/css-values-4/#font-relative-length.
The fix uses the fallback of 0.5em for ex, similar to the code used in
SvgNumber::solveNonPercentage. A follow-up should implement the correct
use of "x-height of the first available font".

Change-Id: Id9d581994e158d629d9752299ad93ac7e9fe4cad
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166234
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-04-18 18:21:15 +02:00
Mike Kaganski
e275726861 tdf#160593: make sure to use current element's font size for em unit
According to https://drafts.csswg.org/css-values-4/#font-relative-length
em is "equal to the computed value of the font-size property of the element
on which it is used". This means, that for an element that defines its own
font-size, attributes like 'dy' using em refer to the new font-size, not to
inherited font-size.

Change-Id: Ie5a013df99a68edddf466e4c0ee5311f6219fcb2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166233
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-04-18 18:21:09 +02:00
Xisco Fauli
176406a07e svgio: factor out common code
Change-Id: Ib86f04364593546f53419b37d35469c561561aa1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166188
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-18 17:24:10 +02:00
Xisco Fauli
c61aeb5b87 svgio: map all 'in' keywords to target for now
Change-Id: I18d6c839c4005e4052397c4f6682d78c664d25ee
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166145
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-17 09:22:44 +02:00
Xisco Fauli
cb4698626f tdf#48062: Add support for arithmetic in feComposite
Took https://github.com/w3c/csswg-drafts/issues/3831
as a reference

Change-Id: I42039c481ec114c3faeae51526a5f29b86960146
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165828
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-16 09:36:37 +02:00
Caolán McNamara
b25b8a41ab cid#1596322 Resource leak
Change-Id: Ied68c2c6d69437ea0236724279b2353015cd1e65
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166110
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-04-15 14:07:26 +02:00
Mike Kaganski
1f1f423200 Round in XmlWriter::attribute when passing a double
Before, it truncated. Rounding provides a closer value.

Change-Id: I213e6ae34ada2f5081cb2c8b2ef431448c712b37
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165947
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-04-14 15:13:10 +02:00
Xisco Fauli
732ca4879b tdf#159660: Add support for screen mode in feBlend
Change-Id: Iefe655a370cca930319290baa2a25d791371f55c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165958
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-12 10:47:56 +02:00