From 7df706715c82e565bc2e4314547b590dbde330de Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Tue, 1 Nov 2011 12:52:50 +0100 Subject: [PATCH] scrolledwindow: Only do kinetic scrolling on touch devices This is sort of meaningless on pointer devices, besides it implies a different input event handling on child widgets that's unnecessary there. --- gtk/gtkscrolledwindow.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c index 24480a8cc7..d4915484fc 100644 --- a/gtk/gtkscrolledwindow.c +++ b/gtk/gtkscrolledwindow.c @@ -495,9 +495,10 @@ gtk_scrolled_window_class_init (GtkScrolledWindowClass *class) /** * GtkScrolledWindow:kinetic-scrolling: * - * Whether kinetic scrolling mode is enabled. + * Whether kinetic scrolling mode is enabled, + * only applies to devices with source %GDK_SOURCE_TOUCH * - * Since: 3.2 + * Since: 3.4 */ g_object_class_install_property (gobject_class, PROP_KINETIC_SCROLLING, @@ -3037,11 +3038,18 @@ gtk_scrolled_window_button_press_event (GtkWidget *widget, gint threshold; GtkWidget *event_widget; GdkEventButton *event; - GdkDevice *device; + GdkDevice *device, *source_device; + GdkInputSource source; if (_event->type != GDK_BUTTON_PRESS) return FALSE; + source_device = gdk_event_get_source_device (_event); + source = gdk_device_get_source (source_device); + + if (source != GDK_SOURCE_TOUCH) + return FALSE; + event = (GdkEventButton *)_event; if (event->button != 1)