[eog] EogThumbNav: Fix mousewheel scrolling with gtk-3.3.18 and xserver-1.12
- From: Felix Riemann <friemann src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [eog] EogThumbNav: Fix mousewheel scrolling with gtk-3.3.18 and xserver-1.12
- Date: Sun, 18 Mar 2012 17:38:57 +0000 (UTC)
commit 22618a75bcf2a754f5fbe48b2d49c27b5e66ecd5
Author: Felix Riemann <friemann gnome org>
Date: Sun Mar 18 18:28:57 2012 +0100
EogThumbNav: Fix mousewheel scrolling with gtk-3.3.18 and xserver-1.12
Handle incoming smooth scroll events that are oviously caused by
the scrollwheel just like legacy scroll events.
https://bugzilla.gnome.org/show_bug.cgi?id=672312
src/eog-thumb-nav.c | 19 +++++++++++++++++++
1 files changed, 19 insertions(+), 0 deletions(-)
---
diff --git a/src/eog-thumb-nav.c b/src/eog-thumb-nav.c
index f29ec32..34645bd 100644
--- a/src/eog-thumb-nav.c
+++ b/src/eog-thumb-nav.c
@@ -30,6 +30,7 @@
#include <glib/gi18n.h>
#include <glib-object.h>
#include <gtk/gtk.h>
+#include <math.h>
#include <string.h>
#define EOG_THUMB_NAV_GET_PRIVATE(object) \
@@ -83,6 +84,23 @@ eog_thumb_nav_scroll_event (GtkWidget *widget, GdkEventScroll *event, gpointer u
case GDK_SCROLL_RIGHT:
break;
+ case GDK_SCROLL_SMOOTH:
+ {
+ /* Compatibility code to catch smooth events from mousewheels */
+ gdouble x_delta, y_delta;
+ gboolean set = gdk_event_get_scroll_deltas ((GdkEvent*)event,
+ &x_delta, &y_delta);
+
+ /* Propagate horizontal smooth scroll events further,
+ as well as non-mousewheel events. */
+ if (G_UNLIKELY (!set) || x_delta != 0.0 || fabs(y_delta) != 1.0)
+ return FALSE;
+
+ /* The y_delta is either +1.0 or -1.0 here */
+ inc *= (gint) y_delta;
+ }
+ break;
+
default:
g_assert_not_reached ();
return FALSE;
@@ -377,6 +395,7 @@ eog_thumb_nav_init (EogThumbNav *nav)
"scroll-event",
G_CALLBACK (eog_thumb_nav_scroll_event),
nav);
+ gtk_widget_add_events (priv->sw, GDK_SCROLL_MASK);
priv->adj = gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (priv->sw));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]