From d4d2c279e3db8023382fd347897b4da286d4d9eb Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Tue, 18 Jun 2024 17:07:47 +0300 Subject: [PATCH] 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 --- .../materialBrowserQmlSource/MaterialBrowser.qml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/share/qtcreator/qmldesigner/materialBrowserQmlSource/MaterialBrowser.qml b/share/qtcreator/qmldesigner/materialBrowserQmlSource/MaterialBrowser.qml index d84570b434f..987934e295f 100644 --- a/share/qtcreator/qmldesigner/materialBrowserQmlSource/MaterialBrowser.qml +++ b/share/qtcreator/qmldesigner/materialBrowserQmlSource/MaterialBrowser.qml @@ -273,15 +273,17 @@ Item { function ensureVisible(yPos, itemHeight) { let currentY = contentYBehavior.targetValue && scrollViewAnim.running ? contentYBehavior.targetValue : scrollView.contentY + let itemHeightAdj = (itemHeight - scrollView.height + 8) + let lessThanItemSpace = itemHeightAdj >= 0 - if (currentY > yPos) { + if (currentY > yPos || lessThanItemSpace) { if (yPos < itemHeight) scrollView.contentY = 0 else scrollView.contentY = yPos - return true + return !lessThanItemSpace } else { - let adjustedY = yPos + itemHeight - scrollView.height + 8 + let adjustedY = yPos + itemHeightAdj if (currentY < adjustedY) { if (scrollView.contentHeight - scrollView.height < adjustedY ) scrollView.contentY = scrollView.contentHeight - scrollView.height