diff --git a/gtk/gtkdnd.c b/gtk/gtkdnd.c index 3f63d5b363..732d237231 100644 --- a/gtk/gtkdnd.c +++ b/gtk/gtkdnd.c @@ -1881,10 +1881,15 @@ gtk_drag_find_widget (GtkWidget *widget, GList *hierarchy = NULL; gboolean found = FALSE; - if (!gtk_widget_get_mapped (widget) || - !gtk_widget_get_sensitive (widget)) + if (!gtk_widget_get_mapped (widget)) return FALSE; + if (gtk_widget_get_state_flags (widget) & GTK_STATE_FLAG_INSENSITIVE) + { + widget = gtk_widget_get_parent (widget); + continue; + } + /* need to reference the entire hierarchy temporarily in case the * ::drag-motion/::drag-drop callbacks change the widget hierarchy. */