summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2019-10-03 17:04:10 +0100
committerAdolfo Jayme Barrientos <fitojb@ubuntu.com>2019-10-08 11:56:16 +0200
commitcc03bfe99271f33a38b50778c078f66497bf11f5 (patch)
tree7cabd5090af88823782b607340067ed0c23d4ead /include
parentopenssl 1.0.2t (diff)
downloadcore-cc03bfe99271f33a38b50778c078f66497bf11f5.tar.gz
core-cc03bfe99271f33a38b50778c078f66497bf11f5.zip
tdf#127529 vertical text not drawn in slideshow canvas
because the canvas text drawing impl falls back to using an OutputDevice view of the canvas to use the vcl text drawing apis to achieve vertical text To get an OutputDevice view of the canvas there is a specific VirtualDevice ctor available to create a VirtualDevice that, unlike the normal case, doesn't have its own specific backing buffer, but instead draws to the underlying target provided via the SystemGraphicsData arg The svp/gtk impl missed that understanding and provided an ordinary VirtualDevice with its own backing buffer, not a VirtualDevice that would draw to the expected target surface of the canvas. So the vertical text was drawn to a different surface than the intended one, and was just discarded. The cairo use in the canvas long precedes the use of cairo in vcl itself. Seeing as text is now rendered with cairo in all cases where the canvas uses cairo its probably now pointless for canvas to have its own text rendering path. Change-Id: Ie3b0a43ca2b746cbfe25e2d0415315b3d5403cd2 Reviewed-on: https://gerrit.libreoffice.org/80192 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
Diffstat (limited to 'include')
-rw-r--r--include/vcl/sysdata.hxx4
1 files changed, 3 insertions, 1 deletions
diff --git a/include/vcl/sysdata.hxx b/include/vcl/sysdata.hxx
index 4b7b562da519..03dd3d148087 100644
--- a/include/vcl/sysdata.hxx
+++ b/include/vcl/sysdata.hxx
@@ -143,7 +143,8 @@ struct SystemGraphicsData
long hDrawable; // a drawable
void* pVisual; // the visual in use
int nScreen; // the current screen of the drawable
- void* pXRenderFormat; // render format for drawable
+ void* pXRenderFormat; // render format for drawable
+ void* pSurface; // the cairo surface when using svp-based backends
#endif
SystemGraphicsData()
: nSize( sizeof( SystemGraphicsData ) )
@@ -162,6 +163,7 @@ struct SystemGraphicsData
, pVisual( nullptr )
, nScreen( 0 )
, pXRenderFormat( nullptr )
+ , pSurface( nullptr )
#endif
{ }
};