summaryrefslogtreecommitdiff
path: root/gtk/gtkwidget.c
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2014-06-04 12:56:57 +0200
committerCarlos Garnacho <carlosg@gnome.org>2014-06-04 13:44:56 +0200
commitcb059bfc1b5cdcdf41e9b908e70d0b71c25e65c8 (patch)
treeff0a1c6efff1de2df49c642b3e3def90b2a32773 /gtk/gtkwidget.c
parent7a0642743d20ef5fc6cf3b58d104b3fbd2c532a4 (diff)
downloadgtk+-cb059bfc1b5cdcdf41e9b908e70d0b71c25e65c8.tar.gz
widget: Set GDK_BUTTON1_MASK on emulated pointer events
The touch_event handler was missing those when emulating pointer events for the widgets that get GDK_TOUCH_MASK set, but have no specialized touch handlers.
Diffstat (limited to 'gtk/gtkwidget.c')
-rw-r--r--gtk/gtkwidget.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index 2aa5acc2e0..39c0338d39 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -7218,6 +7218,9 @@ gtk_widget_real_touch_event (GtkWidget *widget,
bevent->button.axes = g_memdup (event->axes,
sizeof (gdouble) * gdk_device_get_n_axes (event->device));
gdk_event_set_source_device (bevent, gdk_event_get_source_device ((GdkEvent*)event));
+
+ if (event->type == GDK_TOUCH_END)
+ bevent->button.state |= GDK_BUTTON1_MASK;
}
else if (event->type == GDK_TOUCH_UPDATE)
{
@@ -7226,7 +7229,7 @@ gtk_widget_real_touch_event (GtkWidget *widget,
bevent->any.window = g_object_ref (event->window);
bevent->any.send_event = FALSE;
bevent->motion.time = event->time;
- bevent->motion.state = event->state;
+ bevent->motion.state = event->state | GDK_BUTTON1_MASK;
bevent->motion.x_root = event->x_root;
bevent->motion.y_root = event->y_root;
bevent->motion.x = event->x;