After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 639846 - GdkEventScroll events are sent twice
GdkEventScroll events are sent twice
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: Class: GdkDevice
2.99.x
Other Linux
: Normal normal
: ---
Assigned To: gtk-bugs
Carlos Garnacho
Depends on:
Blocks:
 
 
Reported: 2011-01-18 14:12 UTC by Christian Persch
Modified: 2011-02-04 17:54 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Christian Persch 2011-01-18 14:12:15 UTC
Start gtk+/tests/testcombo, position mouse over any combo box, and use the mouse scroll wheel once to change the selected item (without popping the combo box up, of course).

Actual results: The selected combo box item is the one TWO items below the previously selected one.

Expected results: Should have selected the NEXT item instead.
Comment 1 Vincent Untz 2011-02-03 15:36:19 UTC
This is a generic issue with scrolling, you can see it while scrolling in a GtkCalendar too. I was debugging it in libwnck, and two events are fired, for the same scroll event. The state is different, though:

Breakpoint 1, wnck_pager_scroll_event (widget=0x80d5110, event=0x80e29d0) at pager.c:2096
2096      pager = WNCK_PAGER (widget);
(gdb) print *event
$2 = {type = GDK_SCROLL, window = 0x806c3b0, send_event = 0 '\000', time = 1120309483, x = 367.03958129882812,
  y = 39.909194946289062, state = 0, direction = GDK_SCROLL_UP, device = 0x8072000, x_root = 369.03958129882812,
  y_root = 93.909194946289062}
(gdb) c
Continuing.

Breakpoint 1, wnck_pager_scroll_event (widget=0x80d5110, event=0x80e2b30) at pager.c:2096
2096      pager = WNCK_PAGER (widget);
(gdb) print *event
$3 = {type = GDK_SCROLL, window = 0x806c3b0, send_event = 0 '\000', time = 1120309483, x = 367.03958129882812,
  y = 39.909194946289062, state = 2048, direction = GDK_SCROLL_UP, device = 0x8072000, x_root = 369.03958129882812,
  y_root = 93.909194946289062}
Comment 2 Vincent Untz 2011-02-03 15:36:47 UTC
Forgot to mention: state for the second event is GDK_BUTTON4_MASK.
Comment 3 Matthias Clasen 2011-02-04 16:51:04 UTC
This is more XI2 fallout. Calling gdk_disable_multidevice() makes it go away.