From 3b140a05a441d89482896fe88f381a2c5088e41d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20=C3=85dahl?= Date: Wed, 25 Nov 2020 15:02:26 +0100 Subject: [PATCH] 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. --- gtk/gtkdragicon.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gtk/gtkdragicon.c b/gtk/gtkdragicon.c index 2348674951..e239090011 100644 --- a/gtk/gtkdragicon.c +++ b/gtk/gtkdragicon.c @@ -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]); }