QmlDesigner: Fix material browser ensuring item visibility

...when the available space is less than full item height.

Fixes: QDS-13014
Change-Id: Iad848547c0736e335173a4feb489a0546f01e147
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
This commit is contained in:
Miikka Heikkinen
2024-06-18 17:07:47 +03:00
parent 843dcc1ff6
commit d4d2c279e3

View File

@@ -273,15 +273,17 @@ Item {
function ensureVisible(yPos, itemHeight) { function ensureVisible(yPos, itemHeight) {
let currentY = contentYBehavior.targetValue && scrollViewAnim.running let currentY = contentYBehavior.targetValue && scrollViewAnim.running
? contentYBehavior.targetValue : scrollView.contentY ? contentYBehavior.targetValue : scrollView.contentY
let itemHeightAdj = (itemHeight - scrollView.height + 8)
let lessThanItemSpace = itemHeightAdj >= 0
if (currentY > yPos) { if (currentY > yPos || lessThanItemSpace) {
if (yPos < itemHeight) if (yPos < itemHeight)
scrollView.contentY = 0 scrollView.contentY = 0
else else
scrollView.contentY = yPos scrollView.contentY = yPos
return true return !lessThanItemSpace
} else { } else {
let adjustedY = yPos + itemHeight - scrollView.height + 8 let adjustedY = yPos + itemHeightAdj
if (currentY < adjustedY) { if (currentY < adjustedY) {
if (scrollView.contentHeight - scrollView.height < adjustedY ) if (scrollView.contentHeight - scrollView.height < adjustedY )
scrollView.contentY = scrollView.contentHeight - scrollView.height scrollView.contentY = scrollView.contentHeight - scrollView.height