gtk,pah: Handle press-and-hold on touch devices

This commit is contained in:
Carlos Garnacho
2011-11-23 21:32:29 +01:00
parent eb214aae74
commit c201145d02

View File

@@ -7050,7 +7050,8 @@ _gtk_widget_press_and_hold_check_cancel (GtkWidget *widget,
{
PressAndHoldData *data;
if (event->type != GDK_BUTTON_RELEASE)
if (event->type != GDK_BUTTON_RELEASE &&
event->type != GDK_TOUCH_RELEASE)
return FALSE;
data = gtk_widget_peek_press_and_hold_data (widget);
@@ -7072,7 +7073,8 @@ _gtk_widget_press_and_hold_check_threshold (GtkWidget *widget,
PressAndHoldData *data;
GdkDevice *device;
if (event->type != GDK_MOTION_NOTIFY)
if (event->type != GDK_MOTION_NOTIFY &&
event->type != GDK_TOUCH_MOTION)
return FALSE;
data = gtk_widget_peek_press_and_hold_data (widget);
@@ -7236,7 +7238,8 @@ _gtk_widget_press_and_hold_check_start (GtkWidget *widget,
{
PressAndHoldData *data = gtk_widget_peek_press_and_hold_data (widget);
if (event->type != GDK_BUTTON_PRESS)
if (event->type != GDK_BUTTON_PRESS &&
event->type != GDK_TOUCH_PRESS)
return FALSE;
/* Press and hold already in process? */
@@ -7244,6 +7247,7 @@ _gtk_widget_press_and_hold_check_start (GtkWidget *widget,
return FALSE;
data = gtk_widget_get_press_and_hold_data (widget);
data->device = gdk_event_get_device ((GdkEvent *) event);
if (gtk_widget_press_and_hold_query (widget, data->device,
event->x, event->y))
@@ -7308,8 +7312,6 @@ _gtk_widget_press_and_hold_check_start (GtkWidget *widget,
gdk_threads_add_timeout (begin_ani_timeout,
gtk_widget_press_and_hold_begin_animation_timeout,
widget);
data->device = gdk_event_get_device ((GdkEvent *) event);
}
return FALSE;