[gtk+] widget: Set GDK_BUTTON1_MASK on emulated pointer events



commit cb059bfc1b5cdcdf41e9b908e70d0b71c25e65c8
Author: Carlos Garnacho <carlosg gnome org>
Date:   Wed Jun 4 12:56:57 2014 +0200

    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.

 gtk/gtkwidget.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)
---
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index 2aa5acc..39c0338 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;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]