gtk/dragicon: Don't show until child is set

Showing before the child would result in bogus
gdk_drag_surface_present() with an "empty" (1x1) size. This can easily
be avoided by postponing showing until there is anything to show.
This commit is contained in:
Jonas Ådahl
2020-11-25 15:02:26 +01:00
parent d38f81999e
commit 3b140a05a4

View File

@@ -414,7 +414,8 @@ gtk_drag_icon_get_for_drag (GdkDrag *drag)
g_object_set_qdata_full (G_OBJECT (drag), drag_icon_quark, g_object_ref_sink (self), g_object_unref);
gtk_widget_show (self);
if (GTK_DRAG_ICON (self)->child != NULL)
gtk_widget_show (self);
}
return self;
@@ -472,7 +473,10 @@ gtk_drag_icon_set_child (GtkDragIcon *self,
self->child = child;
if (self->child)
gtk_widget_set_parent (self->child, GTK_WIDGET (self));
{
gtk_widget_set_parent (self->child, GTK_WIDGET (self));
gtk_widget_show (GTK_WIDGET (self));
}
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_CHILD]);
}