[gtk+/multitouch: 112/121] entry: Only allow press-and-hold on the text_area window



commit cf2d634f0613337d3008802b6667e60619e62a37
Author: Carlos Garnacho <carlosg gnome org>
Date:   Thu Jan 12 02:38:17 2012 +0100

    entry: Only allow press-and-hold on the text_area window
    
    This avoids oddities in spinbuttons, press-and-hold shouldn't
    be triggered on the buttons.

 gtk/gtkentry.c |   25 +++++++++++++++++++++++++
 1 files changed, 25 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c
index 5f651eb..3f08b0c 100644
--- a/gtk/gtkentry.c
+++ b/gtk/gtkentry.c
@@ -8845,6 +8845,31 @@ gtk_entry_press_and_hold (GtkWidget             *widget,
   if (action == GTK_PRESS_AND_HOLD_TRIGGER)
     gtk_entry_do_popup (GTK_ENTRY (widget),
                         device, GDK_CURRENT_TIME, 1);
+  else if (action == GTK_PRESS_AND_HOLD_QUERY)
+    {
+      GtkEntryPrivate *priv;
+      GdkDevice *source_device;
+      GdkEvent *event;
+
+      priv = GTK_ENTRY (widget)->priv;
+      event = gtk_get_current_event ();
+
+      if (!event)
+        return FALSE;
+
+      source_device = gdk_event_get_source_device (event);
+
+      if (gdk_device_get_source (source_device) != GDK_SOURCE_TOUCH ||
+          (event->type != GDK_BUTTON_PRESS &&
+           event->type != GDK_TOUCH_PRESS) ||
+          event->button.window != priv->text_area)
+        {
+          gdk_event_free (event);
+          return FALSE;
+        }
+
+      gdk_event_free (event);
+    }
 
   return TRUE;
 }



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