diff options
author | Christian Persch <chpe@gnome.org> | 2012-05-11 21:47:54 +0200 |
---|---|---|
committer | Vincent Untz <vuntz@gnome.org> | 2012-05-14 16:49:19 +0200 |
commit | de74b83bfdb78af536e71c58fc297a1eb3b7efe0 (patch) | |
tree | d616ad0cf36fcfcd6815e9751f23505de1088c7a | |
parent | 21538b70a9d493d33021b806f830091591f66815 (diff) | |
download | libwnck-de74b83bfdb78af536e71c58fc297a1eb3b7efe0.tar.gz |
pager, selector, tasklist: Fix mouse wheel scrolling with new GTK+
Add the GDK_SCROLL_MASK to the window events, and add dummy handling of
GDK_SCROLL_SMOOTH events so as to not crash if they occcur.
https://bugzilla.gnome.org/show_bug.cgi?id=673833
-rw-r--r-- | libwnck/pager.c | 3 | ||||
-rw-r--r-- | libwnck/selector.c | 5 | ||||
-rw-r--r-- | libwnck/tasklist.c | 6 |
3 files changed, 14 insertions, 0 deletions
diff --git a/libwnck/pager.c b/libwnck/pager.c index 91b6a70..d7c1f3e 100644 --- a/libwnck/pager.c +++ b/libwnck/pager.c @@ -365,6 +365,7 @@ wnck_pager_realize (GtkWidget *widget) attributes.visual = gtk_widget_get_visual (widget); attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | + GDK_SCROLL_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK; @@ -2094,6 +2095,8 @@ wnck_pager_scroll_event (GtkWidget *widget, if (event->type != GDK_SCROLL) return FALSE; + if (event->direction == GDK_SCROLL_SMOOTH) + return FALSE; absolute_direction = event->direction; diff --git a/libwnck/selector.c b/libwnck/selector.c index df5dc34..cbac32a 100644 --- a/libwnck/selector.c +++ b/libwnck/selector.c @@ -1085,6 +1085,9 @@ wnck_selector_scroll_event (GtkWidget *widget, /* We ignore LEFT and RIGHT scroll events. */ break; + case GDK_SCROLL_SMOOTH: + break; + default: g_assert_not_reached (); } @@ -1246,6 +1249,8 @@ wnck_selector_init (WnckSelector *selector) selector->priv->window_hash = NULL; selector->priv->size = -1; + + gtk_widget_add_events (GTK_WIDGET (selector), GDK_SCROLL_MASK); } static void diff --git a/libwnck/tasklist.c b/libwnck/tasklist.c index 0ce0031..f280701 100644 --- a/libwnck/tasklist.c +++ b/libwnck/tasklist.c @@ -672,6 +672,8 @@ wnck_tasklist_init (WnckTasklist *tasklist) atk_obj = gtk_widget_get_accessible (widget); atk_object_set_name (atk_obj, _("Window List")); atk_object_set_description (atk_obj, _("Tool to switch between visible windows")); + + gtk_widget_add_events (widget, GDK_SCROLL_MASK); } static void @@ -1950,6 +1952,10 @@ wnck_tasklist_scroll_event (GtkWidget *widget, } break; + case GDK_SCROLL_SMOOTH: + window = NULL; + break; + #undef TASKLIST_GET_MOST_LEFT #undef TASKLIST_GET_MOST_RIGHT |