1. Launch with SAL_RTL_ENABLED=1 SAL_USE_VCLPLUGIN=kf5 (or kf6) 2. Observe the glitchiness in the Start Center. It gets painted (partly) temporarily when you hover the mouse over it. Bibisected with linux-64-25.2 to 9ea9cd14ffc69e6597996da09943e1ce11a50d6f tdf#163457 CairoSDPR: Need to apply 'damage' to gtk
Acknowledged. 1st try was to see if it has to do with the ApplyFullDamage stuff, so I added code to do that in CairoPixelProcessor2D::~CairoPixelProcessor2D instead of in createPixelProcessor2DFromOutputDevice - but that did not change it. It *is* a OUTDEV_WINDOW which is painted to, so that would hint at that being necessary... If it has not to do with that it maybe something different...
Also looks bad, not that bad, but errors in repaints and positions. Thus has nothing to do with 9ea9cd14ffc69e6597996da09943e1ce11a50d6f. It probably has more to do with RTL itself - The SDPRs do not support that as OutDev does (a mirroring layer and 'hack'). Usually SDPRs are used for visualizing the EditViews - and those are never RTL'ed - what creates a strange mix in running RTL office - UI elements are RTL'ed but apps are usually not. I will check possibilities. One is to support it - I already developed a transformation in OutDev for that stuff that works, so maybe it's enough to do that at construction time. Also possible is to just not use SDPRs when RTL is on, with the problem that this does not solve the problem in the long term. Note that it works with OutDev even with VCLPrimitiveRenderer due to that using OutDev and that has that mirroring layer activated - that's the only reason. Of course it has to be solved - and it can be
NOTE: Also wrong with gtk3, previews are on the wrong side and hilighting when hoovering does not work. Less bad probably buffers/1st paints stuff to a VDEV or bitmap
Thus I experimented using SalGraphics::getMirror that creates the mentioned basegfx::B2DHomMatrix that describes the intended mirroring as single transformation to be applied to view coordinates (screen pixels). That *does* work in principle, but SDPRs are *serious* about mirroring: Not only geometry is mirrored, but also *content*, so also bitmaps are mirrored and also text. This is what you get with a 'real' mirroring - that RTL mode is *not*. Looking at places where and how it is used in current OutDev shows that it explicitely mirrors geometry, but not content. All cases are special cases in principle, so I fear it cannot be solved easily in a generic way. So for now I will just have to abstain using SDPR when RTL is enabled and use the VCLPrmitiveRenderer as fallback (as is). SDPR is designed for rendering EditViews and does not support RTL (yet?)...
Solution on https://gerrit.libreoffice.org/c/core/+/181604
I have added the experimental adding of an RTL mirror transformation to gerrit, see https://gerrit.libreoffice.org/c/core/+/181605. When applying and using SAL_RTL_ENABLED=1 SAL_USE_VCLPLUGIN=kf5 you can see the true mirroring also applied to bitmaps and text - for people interested and as reference, maybe needed at a later point in time.
Armin Le Grand (Collabora) committed a patch related to this issue. It has been pushed to "master": https://git.libreoffice.org/core/commit/8acd6b515e087ce60d3ddefec162a208951fe082 tdf#165061 CairoSDPR: regression: Fix RTL usage It will be available in 25.8.0. The patch should be included in the daily builds available at https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: https://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback.
Thanks, now it's ok Version: 25.8.0.0.alpha0+ (X86_64) / LibreOffice Community Build ID: 449aca5c02c9a927f44b3c6cae99248903fb492c CPU threads: 8; OS: Linux 6.13; UI render: default; VCL: kf6 (cairo+wayland) Locale: fi-FI (fi_FI.UTF-8); UI: en-US Calc: CL threaded
Armin Le Grand (Collabora) committed a patch related to this issue. It has been pushed to "libreoffice-25-2": https://git.libreoffice.org/core/commit/b33ad6257801739d7cb4353b0ce8a64f7de4ce24 tdf#165061 CairoSDPR: regression: Fix RTL usage It will be available in 25.2.2. The patch should be included in the daily builds available at https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: https://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback.
Armin Le Grand (Collabora) committed a patch related to this issue. It has been pushed to "libreoffice-25-2-1": https://git.libreoffice.org/core/commit/751c71a39744e683ec4b63251082ebe8fb42d941 tdf#165061 CairoSDPR: regression: Fix RTL usage It will be available in 25.2.1. The patch should be included in the daily builds available at https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: https://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback.