rendernode: Mask nodes with different modes are different
authorBenjamin Otte <otte@redhat.com>
Mon, 3 Jul 2023 02:44:25 +0000 (04:44 +0200)
committerBenjamin Otte <otte@redhat.com>
Mon, 3 Jul 2023 20:02:44 +0000 (22:02 +0200)
So treat them as such.

Fixes the node editor not updating when I edit the mask mode.

gsk/gskrendernodeimpl.c

index a1ef5de8fe9227854d4c4b70737d70bc137d84ea..e882a3cd0c97891ada869fb1acc73d22cff43987 100644 (file)
@@ -5717,6 +5717,12 @@ gsk_mask_node_diff (GskRenderNode  *node1,
   GskMaskNode *self1 = (GskMaskNode *) node1;
   GskMaskNode *self2 = (GskMaskNode *) node2;
 
+  if (self1->mask_mode != self2->mask_mode)
+    {
+      gsk_render_node_diff_impossible (node1, node2, region);
+      return;
+    }
+
   gsk_render_node_diff (self1->source, self2->source, region);
   gsk_render_node_diff (self1->mask, self2->mask, region);
 }