https://bugs.kde.org/show_bug.cgi?id=528039

            Bug ID: 528039
           Summary: Slow scrolling when using pager and mouse scroll wheel
                    under Wayland
    Classification: Applications
           Product: konsole
      Version First 26.08.2
       Reported In:
          Platform: Arch Linux
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: ---

DESCRIPTION
When using Konsole on Wayland KDE Plasma 6.8, scrolling with the mouse wheel is
slow in vim, or when using a pager such as "less." The problem does not occur
in X11, nor does it occur in Fedora 44 which is using an older version of
plasma (6.7.3) and qt6 (6.11.2). Normal scrolling without a pager functions
fine.

STEPS TO REPRODUCE
1. Run Konsole with qt6-base 6.12.0
2. Run the command "find | less" to produce enough output to enable scrolling
in the pager
3. Move mouse wheel up and down.

OBSERVED RESULT
Scrolling a single line takes 1 or 2 scroll wheel "clicks."

EXPECTED RESULT
3 lines should scroll on a single wheel "click."

SOFTWARE/OS VERSIONS
Operating System: Arch Linux
KDE Plasma Version: 6.8.2
KDE Frameworks Version: 6.31.0
Qt Version: 6.12.0

ADDITIONAL INFORMATION
I have opened up Konsole in a debugger and tracked the problem down to the
ScrollState::addWheelEvent function. On X11 and Fedora 44, pixelDelta().y is
zero, which causes the consumeSteps function to use angleDelta which calculates
the correct number of lines to move (120 / 40 = 3).

On Arch Linux Plasma 6.8.2 Wayland, pixelDelta().y() gives a small value like
15, which later gets divided by pixelStepSize (a value of 19 which is the
fontHeight) so "steps" becomes a small value (alternating between 0 and 1 based
on the the value left in _remainingScrollPixel)

Perhaps this is a new bug in qt6 6.12.0 because it shouldn't be producing
pixelDelta unless I'm using a trackpad? My current workaround is to simply set
_remainingScrollPixel to zero in the event handler so that pixel deltas aren't
used in consumeSteps().

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to