summaryrefslogtreecommitdiff
path: root/svgio
AgeCommit message (Collapse)AuthorFilesLines
2024-11-05Simplify a bitMike Kaganski1-6/+2
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-10-21vcl: move bitmap filter headers into vcl/bitmap global header directoryChris Sherlock2-8/+6
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-05Use good old string literals in assertXPath and friendsMike Kaganski1-846/+846
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-03Fix typoAndrea Gelmini1-1/+1
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-02tdf#163212: context-fill/context-stroke can also use gradientsXisco Fauli6-82/+144
Change-Id: Ic6f7f5e0817d8f5fccee64938004aa899bde47dc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174382 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins
2024-09-20vcl: migrate BitmapArithmeticBlendFilter to use BitmapFilter classChris Sherlock1-3/+3
Change-Id: I524b8c87747b79a8698cce4bd092493ffc9c1235 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173350 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2024-09-12Temporarily skip unit tests on native arm64 buildBalazs Varga1-0/+4
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-08-02Fix wrong / misleading uses of fTools::(more|less|equal) with literal 0Mike Kaganski4-9/+9
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-07-31cid#1555417 COPY_INSTEAD_OF_MOVECaolán McNamara1-1/+1
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-23cid#1555070 COPY_INSTEAD_OF_MOVECaolán McNamara1-1/+1
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-20CairoSDPR: make use of RGBA PolyPolygon in more casesArmin Le Grand (Collabora)3-31/+48
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-17cid#1555694 COPY_INSTEAD_OF_MOVECaolán McNamara1-1/+1
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-11svgio: simplify and rename to make it easier to understandXisco Fauli6-93/+68
Change-Id: Ia1cc5451d4075237f369ecda45300bccdc02c974 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170378 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-07-11tdf#161985: getOpacity is also called from other placesXisco Fauli3-11/+53
Partially revert 56039daae4a436d7ea1b093a02cf0e8ad3bda4a9 "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-11cid#1607892 COPY_INSTEAD_OF_MOVECaolán McNamara1-4/+2
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-10cid#1556474 COPY_INSTEAD_OF_MOVECaolán McNamara1-2/+2
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-08cid#1556123 COPY_INSTEAD_OF_MOVECaolán McNamara1-1/+1
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-06-26svgio: Add missing 'rebeccapurple' colorXisco Fauli1-0/+1
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-13tdf#161213: fill can use context-stroke and vice versaXisco Fauli3-0/+32
Change-Id: Id127bd4943ff1b67915d1de3ba4fcf93dab21423 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168774 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-05-15loplugin:ostr in svgioNoel Grandin8-752/+752
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-06tdf#155651: Add support for "context-fill"Xisco Fauli4-2/+57
Change-Id: I6f96cc7c059ece5f9401fc0ae552cf279e53109c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167230 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins
2024-05-05cid#1596833 Uninitialized pointer fieldCaolán McNamara1-1/+2
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-05crashtesting: assert with stroke width of 4.86057e+93Caolán McNamara1-1/+7
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-03tdf#155651: Add support for "context-stroke"Xisco Fauli5-4/+68
Change-Id: Ib4f4a7b644d0d6c6b36e31b80fd7adc18999110d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167024 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-25CppunitTest_svgio: fix mid-air collisionXisco Fauli1-11/+7
it was caused by 98935eef13c7d755221d79fe7d3c5869a40a7c37 "tdf#159661, tdf#160773: svgio: Add unittest" and 7f64148507a360825e9c28ddb7077996df9fa092 "Fix a thinko in 8a97f1ba8d9ccb65b2c89106de20666311d90c30" This partially reverts d984836834e67b5bcd618ebd5d1633138985a881 "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-24Fix unit test after commit 98935eef13c7d755221d79fe7d3c5869a40a7c37Mike Kaganski1-7/+11
Similar to commit cfa9990d470b10548c7fed64eb1182fea11d41e0 (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-23tdf#159661, tdf#160773: svgio: Add unittestXisco Fauli2-0/+21
Change-Id: I2d0b96f13e02ac81b97ea347889c76770c22a989 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166509 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-22tdf#159660: also add normal blend filterXisco Fauli3-81/+103
Change-Id: I3edc7495975618357f002536857a11dcc72cc0b9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166460 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-22tdf#160782: convert to bitmapEx from 0,0 to width,heightXisco Fauli4-44/+123
This is the way it's done everywhere. Partially revert 4b6e0f2c88debaedb514c868e061c21e15215b6e "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-22tdf#159660: Add support for lighten mode in feBlendXisco Fauli4-0/+63
Change-Id: I17471a9c70a38d05de5ad476f817285fb2438e5a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166429 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-22tdf#159660: Add support for darken mode in feBlendXisco Fauli4-0/+63
Change-Id: I56862163b7bf1177120081c95ab7851a5fc4019b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166428 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-22tdf#159660: Add support for multiply mode in feBlendXisco Fauli4-3/+70
Change-Id: I03230e122a10dd6ada6af357c674c278b6b99d9e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166427 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-22tdf#159660: premultiply colors for screen blendXisco Fauli2-0/+52
This is needed after 4b6e0f2c88debaedb514c868e061c21e15215b6e "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-22tdf#160726, tdf#48062: Simplify how BitmapExs are createdXisco Fauli8-73/+310
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-21svgio: feImage and feFlood don't support the in attributeXisco Fauli4-24/+0
Added by mistake in b22039cff8380b158307e75762bd3e4ca045d77b "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-20tdf#157103: fix SVG whitespace handlingMike Kaganski4-90/+134
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-20cid#1596521 Resource leakCaolán McNamara1-4/+3
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-20tdf#160702: improve text positioningMike Kaganski2-46/+52
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-20svgio: remove duplicated assertXPathDoubleXisco Fauli1-10/+1
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-19tdf#160721: nothing is displayed in case of wrong 'in' referenceXisco Fauli2-0/+29
Change-Id: I746ec8a12dba7832241693dac7f20788a2fa85bb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166267 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-19tdf#160622: Let SalLayout::GetBoundRect return basegfx::B2DRectangleMike Kaganski1-1/+10
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 8962141a12c966b2d891829925e6203bf8d51852). 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-19tdf#160717: fix ex handlingMike Kaganski6-25/+22
Same as in commit e27572686130df43d1d65c574b0c34f39fc0d1a9 (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-18tdf#160594: Use the recommended fallback of 0.5em for ex in font-sizeMike Kaganski3-4/+27
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-18tdf#160593: make sure to use current element's font size for em unitMike Kaganski9-26/+35
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-18svgio: factor out common codeXisco Fauli4-44/+28
Change-Id: Ib86f04364593546f53419b37d35469c561561aa1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166188 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-17svgio: map all 'in' keywords to target for nowXisco Fauli1-1/+9
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-16tdf#48062: Add support for arithmetic in feCompositeXisco Fauli4-48/+180
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-15cid#1596322 Resource leakCaolán McNamara1-2/+2
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-14Round in XmlWriter::attribute when passing a doubleMike Kaganski1-14/+14
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-12tdf#159660: Add support for screen mode in feBlendXisco Fauli4-7/+98
Change-Id: Iefe655a370cca930319290baa2a25d791371f55c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165958 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>