summaryrefslogtreecommitdiff
path: root/gsk/gskrendernodeprivate.h
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2021-03-28 10:18:23 -0400
committerMatthias Clasen <mclasen@redhat.com>2021-03-28 10:26:06 -0400
commit2d5dd7b3d72098a89ff610786a09bb23c3afbf05 (patch)
tree3710d27d0449ea48cf4f192cf6ffaf15a1d4c909 /gsk/gskrendernodeprivate.h
parent0904dd29c20ca8539b9b4261bc595a8f90d19933 (diff)
downloadgtk+-2d5dd7b3d72098a89ff610786a09bb23c3afbf05.tar.gz
gsk: Make rendernode diffing smarter
Allow comparing container nodes to any other node, by pretending the other node is a single child container (if it isn't one already). This fixes a glitch where we redraw the full entry text when the blinking cursor goes to opacity 0, since GskSnapshot then optimizes away first the opacity node, and then the single-child container.
Diffstat (limited to 'gsk/gskrendernodeprivate.h')
-rw-r--r--gsk/gskrendernodeprivate.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/gsk/gskrendernodeprivate.h b/gsk/gskrendernodeprivate.h
index 07ec707c03..a767daa365 100644
--- a/gsk/gskrendernodeprivate.h
+++ b/gsk/gskrendernodeprivate.h
@@ -93,6 +93,9 @@ void gsk_render_node_diff (GskRenderNode
void gsk_render_node_diff_impossible (GskRenderNode *node1,
GskRenderNode *node2,
cairo_region_t *region);
+void gsk_container_node_diff_with (GskRenderNode *container,
+ GskRenderNode *other,
+ cairo_region_t *region);
bool gsk_border_node_get_uniform (const GskRenderNode *self);
bool gsk_border_node_get_uniform_color (const GskRenderNode *self);