Bug 375069

Summary: Scrolling through plasmashell lists is too slow, shows entries cut in half
Product: [Plasma] plasmashell Reporter: Lukas Ba. <kdeu>
Component: generalAssignee: David Edmundson <kde>
Status: RESOLVED UPSTREAM    
Severity: normal CC: abderrahman.najjar, bhush94, bugseforuns, elvis.angelaccio, kde, kishore96, kollix, marcinkolenda419, plasma-bugs, postadelmaga, ukyoi, ville.aakko, wulf.richartz, yodor
Priority: NOR    
Version: 5.8.5   
Target Milestone: 1.0   
Platform: Other   
OS: Linux   
See Also: https://bugreports.qt.io/browse/QTBUG-59261
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Lukas Ba. 2017-01-15 00:12:55 UTC
Scrolling trough some lists with the mouse wheel only moves the visible part of a list by a few pixels.

When i scroll 4 steps on the mouse wheel, i see only the half of a new list-entry, with the text cut in half horizontally.

Lists i have noticed that this applies to:
* application starter > history
* Klipper history in the Klipper applet
* the list of applets shown when adding a new applet to a taskbar, or the desktop

AFAIK all of these are shown by plasmashell.

Note that scrolling in applications such as dolphin and konsole works at a normal speed.

Also, please don't show entries cut in half. These lists should work like scrolling through output in the konsole terminal, which never shows half a line, and jumps exactly to the start/end of a line.

Also, the length of these lists should be such that no cut in half entries are shown, ever. Observe how the konsole terminal does this perfectly when you are resizing it vertically.
Comment 1 Christoph Feck 2017-01-19 16:24:42 UTC
*** Bug 375009 has been marked as a duplicate of this bug. ***
Comment 2 Christoph Feck 2017-01-25 21:13:06 UTC
*** Bug 375009 has been marked as a duplicate of this bug. ***
Comment 3 Kai Uwe Broulik 2017-01-26 09:43:33 UTC
Can't reproduce. What Qt version is this? I recall Qt before some version not respecting wheel scroll lines. As for delegates not cut in half, that's not easily possible, if at all.

Konsole is a bad example to compare those lists with. It doesn't have section headers and is just a dumb unformatted list of text.
Comment 4 Lukas Ba. 2017-01-26 19:20:34 UTC
Qt is from archlinux package qt5-base 5.7.1-2
Note that Qt applications like "QDBusViewer" scroll exactly by the number of lines configured in the settings.
Comment 5 David Edmundson 2017-03-02 13:14:56 UTC
*** Bug 373747 has been marked as a duplicate of this bug. ***
Comment 6 David Edmundson 2017-03-02 13:24:51 UTC
This is a combo bug in both Qt's XCB backend and ScrollArea in QtQuickControls

scrolling has two modes, moving by n pixels or by n "ticks".
In QWheelEvent terms:
 - pixelDelta and angleDelta

A libinput change has meant that Qt's detection of "is it a scroll wheel or not" is broken. 
I think libinput seems to trying to artificially say how far things should scroll at an input level rather than it being up to the application.

In QXcbConnection::xi2HandleScrollEvent scrollingDevice.verticalIncrement is 15 .

This matches what I see in xinput list which shows:
    Class originated from: 11. Type: XIScrollClass
                Scroll info for Valuator 2
                  type: 2 (horizontal)
                  increment: 15.000000
                  flags: 0x0

We then go into the

              // We do not set "pixel" delta if it is only measured in ticks.
                    if (scrollingDevice.horizontalIncrement > 1)
                        rawDelta.setX(delta);



In most Qt code this isn't a problem. Either pixel delta is ignored or it looks about right anyway

In QtQuickControls QtQuickWheelArea we have a huge bug; as we now have valid pixelDelta we go into a different code path that ignores the user scrollspeed. It then randomly divides things by 2 to match some OS X behaviour.

This is what leads to things being slow and corrupted fonts. 


I'll probably have to close this as upstream once I file a bug report there.
Comment 7 David Edmundson 2017-03-02 13:24:58 UTC
*** Bug 376873 has been marked as a duplicate of this bug. ***
Comment 8 David Edmundson 2017-04-16 20:43:34 UTC
*** Bug 378812 has been marked as a duplicate of this bug. ***
Comment 9 David Edmundson 2017-04-17 14:19:26 UTC
Upstream bug report: https://bugreports.qt.io/browse/QTBUG-59261
Comment 10 Elvis Angelaccio 2017-07-06 21:55:28 UTC
*** Bug 355410 has been marked as a duplicate of this bug. ***
Comment 11 francesco 2018-02-05 21:08:24 UTC
On Arch plasma-desktop 5.11.5-1 the problem is still present ( dolphin scroll is super fast )

When should we expect this fix to land on plasma ? 
( does anyone actually tested the upstream fix on KDE ? aka are we sure this has been actually fixed ? )
Comment 13 francesco 2018-02-06 07:12:15 UTC
So it looks to me there is still some issue here as the scroll in Dolphin is much faster that in a Chrome webpage or in Okular.

It appears to me that Dolphin consider a row "a rows of files" and so each wheel/scroll advancement is related to the file row's height:
- So if you have an high zoom level in dolphin view the scroll is super fast.
To test this behaviour you can use also the arrow keys as basically the mouse scroll and key arrow scroll behave the same way.

I am not an expert of UI but I think this is not the correct behaviour.
Comment 14 Todor Gyumyushev 2018-02-10 12:44:49 UTC
(In reply to francesco from comment #11)
> On Arch plasma-desktop 5.11.5-1 the problem is still present ( dolphin
> scroll is super fast )
> 
> When should we expect this fix to land on plasma ? 
> ( does anyone actually tested the upstream fix on KDE ? aka are we sure this
> has been actually fixed ? )

I'm on Arch plasma-desktop 5.12.0-1 , qt5-base 5.10.0-4 and the problem is still here not sure if the upstream patch is resolving the super fast dolphin scroll.
Should this bug be submitted to Dolphin ?
Comment 15 Patrick Silva 2018-02-10 12:47:43 UTC
Todor, read comment 12.
Comment 16 francesco 2018-02-10 13:25:45 UTC
I confirm it is still present on Plasma 5.12.0
Comment 17 David Edmundson 2018-04-03 15:11:43 UTC
*** Bug 392632 has been marked as a duplicate of this bug. ***