|
 |
f325b2 |
From 98dedb1abb5197ca9bf823ddbcf0b0e55a260505 Mon Sep 17 00:00:00 2001
|
|
 |
f325b2 |
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
|
 |
f325b2 |
Date: Tue, 15 Dec 2015 12:35:05 +0000
|
|
 |
f325b2 |
Subject: [PATCH] rhbz#1283420: cairo text + xrender bodge
|
|
 |
f325b2 |
|
|
 |
f325b2 |
Change-Id: I926881bcfa4911f3d7f4899711be44a2f6d82026
|
|
 |
f325b2 |
---
|
|
 |
f325b2 |
vcl/unx/generic/gdi/x11cairotextrender.cxx | 18 ++++++++++++++++++
|
|
 |
f325b2 |
1 file changed, 18 insertions(+)
|
|
 |
f325b2 |
|
|
 |
f325b2 |
diff --git a/vcl/unx/generic/gdi/x11cairotextrender.cxx b/vcl/unx/generic/gdi/x11cairotextrender.cxx
|
|
 |
f325b2 |
index 8734526..17cb462 100644
|
|
 |
f325b2 |
--- a/vcl/unx/generic/gdi/x11cairotextrender.cxx
|
|
 |
f325b2 |
+++ b/vcl/unx/generic/gdi/x11cairotextrender.cxx
|
|
 |
f325b2 |
@@ -42,6 +42,10 @@ struct _XRegion
|
|
 |
f325b2 |
BOX extents;
|
|
 |
f325b2 |
};
|
|
 |
f325b2 |
|
|
 |
f325b2 |
+#if CAIRO_VERSION < CAIRO_VERSION_ENCODE(1, 10, 0)
|
|
 |
f325b2 |
+# define CAIRO_OPERATOR_DIFFERENCE (static_cast<cairo_operator_t>(23))
|
|
 |
f325b2 |
+#endif
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
X11CairoTextRender::X11CairoTextRender(X11SalGraphics& rParent)
|
|
 |
f325b2 |
: mrParent(rParent)
|
|
 |
f325b2 |
{
|
|
 |
f325b2 |
@@ -78,6 +82,20 @@ cairo_t* X11CairoTextRender::getCairoContext()
|
|
 |
f325b2 |
|
|
 |
f325b2 |
cairo_t *cr = cairo_create(surface);
|
|
 |
f325b2 |
cairo_surface_destroy(surface);
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
+ //rhbz#1283420 bodge to draw and undraw something which has the side effect
|
|
 |
f325b2 |
+ //of making the mysterious xrender related problem go away
|
|
 |
f325b2 |
+ if (cairo_version() >= CAIRO_VERSION_ENCODE(1, 10, 0))
|
|
 |
f325b2 |
+ {
|
|
 |
f325b2 |
+ cairo_save(cr);
|
|
 |
f325b2 |
+ cairo_set_source_rgb(cr, 1.0, 1.0, 1.0);
|
|
 |
f325b2 |
+ cairo_set_operator(cr, CAIRO_OPERATOR_DIFFERENCE);
|
|
 |
f325b2 |
+ cairo_rectangle(cr, 0, 0, 1, 1);
|
|
 |
f325b2 |
+ cairo_fill_preserve(cr);
|
|
 |
f325b2 |
+ cairo_fill(cr);
|
|
 |
f325b2 |
+ cairo_restore(cr);
|
|
 |
f325b2 |
+ }
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
return cr;
|
|
 |
f325b2 |
}
|
|
 |
f325b2 |
|
|
 |
f325b2 |
--
|
|
 |
f325b2 |
2.5.0
|
|
 |
f325b2 |
|