forked from AuroraMiddleware/gtk
widget: Pass parent to gtk_widget_consumes_motion()
Right now it assumes that the parent is a GtkWindow. This will break when window dragging is handled by another widget.
This commit is contained in:
parent
42ca760f9c
commit
6c636642df
@ -11439,12 +11439,13 @@ gtk_widget_remove_controller (GtkWidget *widget,
|
|||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
_gtk_widget_consumes_motion (GtkWidget *widget,
|
gtk_widget_consumes_motion (GtkWidget *widget,
|
||||||
GdkEventSequence *sequence)
|
GtkWidget *parent,
|
||||||
|
GdkEventSequence *sequence)
|
||||||
{
|
{
|
||||||
GtkWidgetPrivate *priv = gtk_widget_get_instance_private (widget);
|
GtkWidgetPrivate *priv = gtk_widget_get_instance_private (widget);
|
||||||
|
|
||||||
while (widget != NULL && !GTK_IS_WINDOW (widget))
|
while (widget != NULL && widget != parent)
|
||||||
{
|
{
|
||||||
guint i;
|
guint i;
|
||||||
|
|
||||||
|
@ -281,8 +281,9 @@ void _gtk_widget_update_parent_muxer (GtkWidget *widget
|
|||||||
GtkActionMuxer * _gtk_widget_get_action_muxer (GtkWidget *widget,
|
GtkActionMuxer * _gtk_widget_get_action_muxer (GtkWidget *widget,
|
||||||
gboolean create);
|
gboolean create);
|
||||||
|
|
||||||
gboolean _gtk_widget_consumes_motion (GtkWidget *widget,
|
gboolean gtk_widget_consumes_motion (GtkWidget *widget,
|
||||||
GdkEventSequence *sequence);
|
GtkWidget *parent,
|
||||||
|
GdkEventSequence *sequence);
|
||||||
|
|
||||||
gboolean gtk_widget_has_tick_callback (GtkWidget *widget);
|
gboolean gtk_widget_has_tick_callback (GtkWidget *widget);
|
||||||
|
|
||||||
|
@ -1472,7 +1472,7 @@ drag_gesture_update_cb (GtkGestureDrag *gesture,
|
|||||||
*/
|
*/
|
||||||
if (event_widget != GTK_WIDGET (window) &&
|
if (event_widget != GTK_WIDGET (window) &&
|
||||||
!gtk_widget_has_grab (event_widget) &&
|
!gtk_widget_has_grab (event_widget) &&
|
||||||
_gtk_widget_consumes_motion (event_widget, sequence))
|
gtk_widget_consumes_motion (event_widget, GTK_WIDGET (window), sequence))
|
||||||
{
|
{
|
||||||
gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_DENIED);
|
gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_DENIED);
|
||||||
return;
|
return;
|
||||||
|
Loading…
Reference in New Issue
Block a user