diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /gfx/cairo/cairo_qt_a8_fallback.diff | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'gfx/cairo/cairo_qt_a8_fallback.diff')
-rw-r--r-- | gfx/cairo/cairo_qt_a8_fallback.diff | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/gfx/cairo/cairo_qt_a8_fallback.diff b/gfx/cairo/cairo_qt_a8_fallback.diff new file mode 100644 index 000000000..a8388dda7 --- /dev/null +++ b/gfx/cairo/cairo_qt_a8_fallback.diff @@ -0,0 +1,68 @@ +CAIRO_FORMAT_A8 not allowed for cairo-qt image backend +diff --git a/gfx/cairo/cairo/src/cairo-qt-surface.cpp b/gfx/cairo/cairo/src/cairo-qt-surface.cpp +--- a/gfx/cairo/cairo/src/cairo-qt-surface.cpp ++++ b/gfx/cairo/cairo/src/cairo-qt-surface.cpp +@@ -459,17 +459,17 @@ _cairo_qt_surface_finish (void *abstract + { + cairo_qt_surface_t *qs = (cairo_qt_surface_t *) abstract_surface; + + D(fprintf(stderr, "q[%p] finish\n", abstract_surface)); + + /* Only delete p if we created it */ + if (qs->image || qs->pixmap) + delete qs->p; +- else ++ else if (qs->p) + qs->p->restore (); + + if (qs->image_equiv) + cairo_surface_destroy (qs->image_equiv); + + _cairo_surface_clipper_reset (&qs->clipper); + + if (qs->image) +@@ -736,17 +736,17 @@ _cairo_qt_surface_set_clip_region (cairo + } + + static cairo_int_status_t + _cairo_qt_surface_set_clip (cairo_qt_surface_t *qs, + cairo_clip_t *clip) + { + cairo_int_status_t status; + +- D(fprintf(stderr, "q[%p] intersect_clip_path %s\n", abstract_surface, path ? "(path)" : "(clear)")); ++ D(fprintf(stderr, "q[%p] intersect_clip_path %s\n", qs, clip ? "(path)" : "(clear)")); + + if (clip == NULL) { + _cairo_surface_clipper_reset (&qs->clipper); + // How the clip path is reset depends on whether we own p or not + if (qs->pixmap || qs->image) { + // we own p + qs->p->setClipping (false); + } else { +@@ -1605,16 +1605,25 @@ cairo_qt_surface_create_with_qimage (cai + + _cairo_surface_init (&qs->base, + &cairo_qt_surface_backend, + _cairo_content_from_format (format)); + + _cairo_surface_clipper_init (&qs->clipper, + _cairo_qt_surface_clipper_intersect_clip_path); + ++ if (CAIRO_FORMAT_A8 == format) { ++ qs->image = NULL; ++ qs->image_equiv = cairo_image_surface_create(format, ++ width, height); ++ qs->p = NULL; ++ qs->supports_porter_duff = false; ++ qs->window = QRect(0, 0, width, height); ++ return &qs->base; ++ } + + QImage *image = new QImage (width, height, + _qimage_format_from_cairo_format (format)); + + qs->image = image; + + if (!image->isNull()) { + qs->p = new QPainter(image); |