Summary: | OverlaySheet to select a file is non-scrollable when very long | ||
---|---|---|---|
Product: | [Frameworks and Libraries] frameworks-knewstuff | Reporter: | Nicolas Fella <nicolas.fella> |
Component: | general | Assignee: | Dan Leinir Turthra Jensen <admin> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | alexander.lohnau, bugseforuns, kdelibs-bugs, me, nate |
Priority: | HI | ||
Version: | 5.90.0 | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/frameworks/knewstuff/commit/81321e5251348b02cbf20c021ce5c4dbb069e99a | Version Fixed In: | 5.104 |
Sentry Crash Report: | |||
Attachments: | screen recording |
Description
Nicolas Fella
2022-01-19 22:58:56 UTC
Created attachment 145655 [details]
screen recording
Yeah can confirm. Seems like an implementation issue in the dialog. This does not look like an upstream Kirigami issue, as the equivalent OverlaySheets do scroll fine with long list of reviews in Discover. Dragging the scrollbar was a separate issue, and has been fixed last year: https://invent.kde.org/frameworks/kirigami/-/merge_requests/738 Some observations: Scrolling directly over the scrollbar works. It does not differentiate between discrete mouse and smoother touchpad input (at least on X11). I suspect Kirigami WheelHandler just got attached to a wrong flickable here, so it kinda forward event to something invisible, and blocks them from propagating normally. I think I found the cause. OverlaySheet documentation clearly states: > It needs a single element declared inseide, do *not* override its contentItem …and KNewStuff DownloadItemsSheet.qml happily does just that: > Kirigami.OverlaySheet { > id: component > > //... > > contentItem: QtLayouts.ColumnLayout { > QtControls.ScrollView { > // ... Second part of the problem is that docs suggest using either a ColumnLayout or a ListView as that single element. But not combining them one inside another, and especially a ListView wrapped in an extra ScrollView inside a ColumnLayout. Moving extra top items into a ListView's inline header, on the other hand, works great, and fully fixes this bug. A possibly relevant merge request was started @ https://invent.kde.org/frameworks/knewstuff/-/merge_requests/229 A possibly relevant merge request was started @ https://invent.kde.org/frameworks/knewstuff/-/merge_requests/230 Git commit 853c603e1bfcd19c5ab8a21dcbec3821802a1faa by ivan tkachenko. Committed on 22/02/2023 at 21:27. Pushed by ratijas into branch 'master'. DownloadItemsSheet: Fix scrolling OverlaySheet documentation clearly states: > It needs a single element declared inside, do *not* override its contentItem …and KNewStuff DownloadItemsSheet.qml happily does just that: > Kirigami.OverlaySheet { > id: component > > //... > > contentItem: QtLayouts.ColumnLayout { > QtControls.ScrollView { > // ... Second part of the problem is that the docs suggests using either a ColumnLayout or a ListView as that single element. But not combining them one inside another, and especially not a ListView wrapped in an extra ScrollView inside a ColumnLayout. Moving extra top items into a ListView's inline header, on the other hand, works great, and fully fixes this scrolling issue. Note: In order to backport to kf5 branch, replace `icon.name:` in Kirigami.BasicListItem delegate with older `icon:` counterpart. FIXED-IN: 5.104 M +30 -39 src/qtquick/qml/DownloadItemsSheet.qml https://invent.kde.org/frameworks/knewstuff/commit/853c603e1bfcd19c5ab8a21dcbec3821802a1faa Git commit 81321e5251348b02cbf20c021ce5c4dbb069e99a by ivan tkachenko. Committed on 22/02/2023 at 21:27. Pushed by ratijas into branch 'kf5'. DownloadItemsSheet: Fix scrolling OverlaySheet documentation clearly states: > It needs a single element declared inside, do *not* override its contentItem …and KNewStuff DownloadItemsSheet.qml happily does just that: > Kirigami.OverlaySheet { > id: component > > //... > > contentItem: QtLayouts.ColumnLayout { > QtControls.ScrollView { > // ... Second part of the problem is that the docs suggests using either a ColumnLayout or a ListView as that single element. But not combining them one inside another, and especially not a ListView wrapped in an extra ScrollView inside a ColumnLayout. Moving extra top items into a ListView's inline header, on the other hand, works great, and fully fixes this scrolling issue. Note: In order to backport to kf5 branch, replace `icon.name:` in Kirigami.BasicListItem delegate with older `icon:` counterpart. FIXED-IN: 5.104 (cherry picked from commit 853c603e1bfcd19c5ab8a21dcbec3821802a1faa) M +30 -39 src/qtquick/qml/DownloadItemsSheet.qml https://invent.kde.org/frameworks/knewstuff/commit/81321e5251348b02cbf20c021ce5c4dbb069e99a *** Bug 455397 has been marked as a duplicate of this bug. *** |