Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-49549

QAbstractSlider should accept wheel events

    XMLWordPrintable

Details

    • macOS

    Description

      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.

      Attachments

        For Gerrit Dashboard: QTBUG-49549
        # Subject Branch Project Status CR V

        Activity

          People

            allan.jensen Allan Sandfeld Jensen
            johnweeks John Weeks
            Votes:
            1 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes