forked from AuroraMiddleware/gtk
gtkdnd: Traverse across insensitive widgets
The current widget lookup code bails out on insensitive widgets, there's however legit cases where we want DnD handled by a parent of the insensitive widget, so just keep going upwards in that case. We also use now the widget state flags, because get_sensitive() doesn't propagate across hierarchies, so we could conceivably find a drop site inside an insensitive widget. https://bugzilla.gnome.org/show_bug.cgi?id=751793
This commit is contained in:
parent
7f57f63eba
commit
3f8982a0cd
@ -1881,10 +1881,15 @@ gtk_drag_find_widget (GtkWidget *widget,
|
|||||||
GList *hierarchy = NULL;
|
GList *hierarchy = NULL;
|
||||||
gboolean found = FALSE;
|
gboolean found = FALSE;
|
||||||
|
|
||||||
if (!gtk_widget_get_mapped (widget) ||
|
if (!gtk_widget_get_mapped (widget))
|
||||||
!gtk_widget_get_sensitive (widget))
|
|
||||||
return FALSE;
|
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
|
/* need to reference the entire hierarchy temporarily in case the
|
||||||
* ::drag-motion/::drag-drop callbacks change the widget hierarchy.
|
* ::drag-motion/::drag-drop callbacks change the widget hierarchy.
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user