summaryrefslogtreecommitdiff
path: root/gsk
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2021-09-16 08:05:21 -0400
committerBenjamin Otte <otte@redhat.com>2021-09-16 23:59:37 +0200
commit93323be22a5727ceaea67938e88acf31066f7ee0 (patch)
treee47ae0ad8199f586bd86171a7798793661089b50 /gsk
parent9e14de25345039318bdd0a1f980139381bfae188 (diff)
downloadgtk+-93323be22a5727ceaea67938e88acf31066f7ee0.tar.gz
ngl: Avoid offscreens in more cases
We avoid an offscreen if we know the child node can 'handle' the transform. Shadow nodes can if their child node does - either the child node is a text node in which case the shortcuts we take for shadow nodes will work fine with the transform (we just render the text node offset), or the child is not a text node, in which case we render the shadow to an offscreen anyway. This change makes the label-shadows reftest pass with the GL renderer, not by fixing the issue but by avoiding it.
Diffstat (limited to 'gsk')
-rw-r--r--gsk/ngl/gsknglrenderjob.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gsk/ngl/gsknglrenderjob.c b/gsk/ngl/gsknglrenderjob.c
index 92d659f976..4cccd89ba5 100644
--- a/gsk/ngl/gsknglrenderjob.c
+++ b/gsk/ngl/gsknglrenderjob.c
@@ -252,6 +252,9 @@ node_supports_transform (const GskRenderNode *node)
case GSK_TEXT_NODE:
return TRUE;
+ case GSK_SHADOW_NODE:
+ return node_supports_transform (gsk_shadow_node_get_child (node));
+
case GSK_TRANSFORM_NODE:
return node_supports_transform (gsk_transform_node_get_child (node));