mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-17 12:47:30 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
57
gfx/cairo/handle-multi-path-clip.patch
Normal file
57
gfx/cairo/handle-multi-path-clip.patch
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
diff --git a/gfx/cairo/cairo/src/cairo-image-surface.c b/gfx/cairo/cairo/src/cairo-image-surface.c
|
||||
--- a/gfx/cairo/cairo/src/cairo-image-surface.c
|
||||
+++ b/gfx/cairo/cairo/src/cairo-image-surface.c
|
||||
@@ -2885,16 +2885,18 @@ static cairo_status_t
|
||||
cairo_bool_t need_clip_mask = FALSE;
|
||||
cairo_status_t status;
|
||||
struct _cairo_boxes_chunk *chunk;
|
||||
uint32_t pixel;
|
||||
int i;
|
||||
|
||||
if (clip != NULL) {
|
||||
status = _cairo_clip_get_region (clip, &clip_region);
|
||||
+ if (unlikely (status == CAIRO_INT_STATUS_NOTHING_TO_DO))
|
||||
+ return CAIRO_STATUS_SUCCESS;
|
||||
need_clip_mask = status == CAIRO_INT_STATUS_UNSUPPORTED;
|
||||
if (need_clip_mask &&
|
||||
(op == CAIRO_OPERATOR_SOURCE || ! extents->is_bounded))
|
||||
{
|
||||
return CAIRO_INT_STATUS_UNSUPPORTED;
|
||||
}
|
||||
|
||||
if (clip_region != NULL && cairo_region_num_rectangles (clip_region) == 1)
|
||||
@@ -3200,30 +3202,20 @@ static cairo_status_t
|
||||
return _clip_and_composite (dst, op, src,
|
||||
_composite_traps, &info,
|
||||
extents, clip);
|
||||
}
|
||||
|
||||
static cairo_clip_path_t *
|
||||
_clip_get_single_path (cairo_clip_t *clip)
|
||||
{
|
||||
- cairo_clip_path_t *iter = clip->path;
|
||||
- cairo_clip_path_t *path = NULL;
|
||||
-
|
||||
- do {
|
||||
- if ((iter->flags & CAIRO_CLIP_PATH_IS_BOX) == 0) {
|
||||
- if (path != NULL)
|
||||
- return FALSE;
|
||||
-
|
||||
- path = iter;
|
||||
- }
|
||||
- iter = iter->prev;
|
||||
- } while (iter != NULL);
|
||||
-
|
||||
- return path;
|
||||
+ if (clip->path->prev == NULL)
|
||||
+ return clip->path;
|
||||
+
|
||||
+ return NULL;
|
||||
}
|
||||
|
||||
/* high level image interface */
|
||||
|
||||
static cairo_int_status_t
|
||||
_cairo_image_surface_paint (void *abstract_surface,
|
||||
cairo_operator_t op,
|
||||
const cairo_pattern_t *source,
|
||||
Loading…
Add table
Add a link
Reference in a new issue