[Libreoffice-commits] core.git: Branch 'libreoffice-5-1' - vcl/unx

Caolán McNamara caolanm at redhat.com
Sat Jun 11 10:14:19 UTC 2016


 vcl/unx/generic/gdi/x11cairotextrender.cxx |   18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

New commits:
commit c55d703ea00de67793765f8da7ca17dfb54281fc
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Dec 15 12:35:05 2015 +0000

    Related: tdf#99446 cairo text + xrender bodge
    
    (cherry picked from commit 1d18db339242a535d956b7e944ad1488fd2b4fd8)
    
    Change-Id: I926881bcfa4911f3d7f4899711be44a2f6d82026
    Reviewed-on: https://gerrit.libreoffice.org/26087
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Markus Mohrhard <markus.mohrhard at googlemail.com>

diff --git a/vcl/unx/generic/gdi/x11cairotextrender.cxx b/vcl/unx/generic/gdi/x11cairotextrender.cxx
index 8734526..17cb462 100644
--- a/vcl/unx/generic/gdi/x11cairotextrender.cxx
+++ b/vcl/unx/generic/gdi/x11cairotextrender.cxx
@@ -42,6 +42,10 @@ struct _XRegion
     BOX extents;
 };
 
+#if CAIRO_VERSION < CAIRO_VERSION_ENCODE(1, 10, 0)
+#    define CAIRO_OPERATOR_DIFFERENCE (static_cast<cairo_operator_t>(23))
+#endif
+
 X11CairoTextRender::X11CairoTextRender(X11SalGraphics& rParent)
     : mrParent(rParent)
 {
@@ -78,6 +82,20 @@ cairo_t* X11CairoTextRender::getCairoContext()
 
     cairo_t *cr = cairo_create(surface);
     cairo_surface_destroy(surface);
+
+    //rhbz#1283420 bodge to draw and undraw something which has the side effect
+    //of making the mysterious xrender related problem go away
+    if (cairo_version() >= CAIRO_VERSION_ENCODE(1, 10, 0))
+    {
+        cairo_save(cr);
+        cairo_set_source_rgb(cr, 1.0, 1.0, 1.0);
+        cairo_set_operator(cr, CAIRO_OPERATOR_DIFFERENCE);
+        cairo_rectangle(cr, 0, 0, 1, 1);
+        cairo_fill_preserve(cr);
+        cairo_fill(cr);
+        cairo_restore(cr);
+    }
+
     return cr;
 }
 


More information about the Libreoffice-commits mailing list