widget: Improve hack to ignore drags from widgets using motion events
Postpone until the last moment whether the target widget still potentially uses updates from this sequence, or window dragging actually applies because all gestures on the target went to denied state. This fixes window dragging on empty space in a headerbar that is contained in a paned (as in e.g. gedit). https://bugzilla.gnome.org/show_bug.cgi?id=745562
This commit is contained in:
committed by
Matthias Clasen
parent
768e6a4579
commit
08494f86a0
@ -17284,7 +17284,8 @@ _gtk_widget_list_controllers (GtkWidget *widget,
|
||||
}
|
||||
|
||||
gboolean
|
||||
_gtk_widget_consumes_motion (GtkWidget *widget)
|
||||
_gtk_widget_consumes_motion (GtkWidget *widget,
|
||||
GdkEventSequence *sequence)
|
||||
{
|
||||
EventControllerData *data;
|
||||
GtkWidgetPrivate *priv;
|
||||
@ -17301,10 +17302,11 @@ _gtk_widget_consumes_motion (GtkWidget *widget)
|
||||
if (data->controller == NULL)
|
||||
continue;
|
||||
|
||||
if (!GTK_IS_GESTURE_SINGLE (data->controller))
|
||||
return TRUE;
|
||||
else if (GTK_IS_GESTURE_DRAG (data->controller) ||
|
||||
GTK_IS_GESTURE_SWIPE (data->controller))
|
||||
if ((!GTK_IS_GESTURE_SINGLE (data->controller) ||
|
||||
GTK_IS_GESTURE_DRAG (data->controller) ||
|
||||
GTK_IS_GESTURE_SWIPE (data->controller)) &&
|
||||
gtk_gesture_get_sequence_state (GTK_GESTURE (data->controller),
|
||||
sequence) != GTK_EVENT_SEQUENCE_DENIED)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user