widget: Don't snapshot foreign children

When snapshotting, we walk down the widget tree.
We need to skip children that have a different
surface, since those will do their own snapshot.
This commit is contained in:
Matthias Clasen 2019-03-18 07:51:47 -04:00
parent 8713397948
commit 54662f4ca0

View File

@ -13367,6 +13367,8 @@ gtk_widget_forall (GtkWidget *widget,
*
* gtk_widget_snapshot_child() takes care of translating the origin of
* @snapshot, and deciding whether the child needs to be snapshot.
*
* This function does nothing for children that implement #GtkNative.
**/
void
gtk_widget_snapshot_child (GtkWidget *widget,
@ -13378,6 +13380,9 @@ gtk_widget_snapshot_child (GtkWidget *widget,
g_return_if_fail (_gtk_widget_get_parent (child) == widget);
g_return_if_fail (snapshot != NULL);
if (GTK_IS_NATIVE (child))
return;
gtk_snapshot_save (snapshot);
gtk_snapshot_transform (snapshot, priv->transform);