-
Type:
Bug
-
Status: Open
-
Priority:
P3: Somewhat important
-
Resolution: Unresolved
-
Affects Version/s: 5.6.0 Alpha
-
Fix Version/s: None
-
Component/s: GUI: Basic Input System (keyboard, mouse, touch)
-
Labels:None
-
Environment:Mac OS X and Windows
If you position the mouse over a QScrollBar and move the mousewheel, you trigger this code in qabstractslider.cpp:
bool QAbstractSliderPrivate::scrollByDelta(Qt::Orientation orientation, Qt::KeyboardModifiers modifiers, int delta) { ... offset_accumulated -= int(offset_accumulated); if (stepsToScroll == 0) return false; }
causes the calling function, QScrollBar::wheelEvent() in qscrollbar.cpp to call event->ignore(), which in turn causes the event to propagate to the parent. But the accumulation code has actually used the event (it accumulated the wheel delta) and event->accept() should be called.
This causes the parent widget to get scroll wheel events that really are intended for the scroll bar.