Zren added a comment.
So before my commit, it was only needing to do: qml: cellHeight iconHeight 108 qml: cellWidth iconWidth 92 qml: cellHeight iconHeight 108 with no updates after the panel is added. - After my patch logs: https://gist.github.com/Zren/2272e7c5ad6e8ff8e65b3480cddb9910 - With isRootView check logs: https://gist.github.com/Zren/e9ad15929d376a5dc828b5ce8a8eda7f - Code I mentioned above: https://gist.github.com/Zren/e9fa35350673da3cb1dde8e7bb44b28c When the panel slides in, it seems to sometimes update at height=1979px, but it may skip that and just calculate at height=1050px (I have a 30px panel). We could check if ` && scrollArea.viewportHeight > 0` however that's still calculating the extra space a few times before the panel is added. https://gist.github.com/Zren/1d93dfb5e687e68732d470d26104bf6d Ideally we'd only want to calculate cellWidth/cellHeight once like it was before. seeing as how viewportHeight/viewportWidth is recalculated. We could also wait for the scrollArea component to complete loading. PlasmaExtras.ScrollArea { id: scrollArea readonly property int viewportWidth: ready && viewport ? Math.ceil(viewport.width) : 0 readonly property int viewportHeight: ready && viewport ? Math.ceil(viewport.height) : 0 property bool ready: false Component.onCompleted: { ready = true } which brings us to this before the panels are added. qml: cellHeight iconHeight 108 qml: onCellHeightChanged 108 qml: cellWidth iconWidth 92 qml: onCellWidthChanged 92 qml: cellHeight iconHeight 108 qml: cellHeight iconHeight 108 qml: cellWidth iconWidth 92 qml: scrollArea.onCompleted qml: cellWidth iconWidth 92 qml: cellHeight iconHeight 108 qml: cellHeight iconHeight 108 qml: cellWidth iconWidth 92 qml: availableColumns 20.869565217391305 = containerSize / cellSize 1920 92 qml: availableColumns 20 floored qml: allColumnSize 1840 qml: extraSpace 80 qml: extraSpacing 4 qml: cellWidth extraWidth 4 qml: onCellWidthChanged 96 qml: cellHeight iconHeight 108 qml: availableColumns 10 = containerSize / cellSize 1080 108 qml: availableColumns 10 floored qml: allColumnSize 1080 qml: extraSpace 0 qml: extraSpacing 0 qml: cellHeight extraHeight 0 That seems good enough to me. After the panels are added... I'm not sure what else to do. There isn't really a way to tell plasmoid.screenGeomertry is animating. As for the binding loops, I'd need to rewrite https://phabricator.kde.org/D6201 to get rid of the binding loops on the label without breaking other stuff. REPOSITORY R119 Plasma Desktop REVISION DETAIL https://phabricator.kde.org/D6188 To: Zren, hein Cc: anthonyfieroni, broulik, plasma-devel, ZrenBot, spstarr, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart, lukas