** Changed in: canonical-devices-system-image Status: In Progress => Fix Committed
-- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to qtdeclarative-opensource- src in Ubuntu. https://bugs.launchpad.net/bugs/1588238 Title: Flickable's widthRatio and heightRatio are wrong when the content is smaller than the view and has topMargin/leftMargin Status in Canonical System Image: Fix Committed Status in qtdeclarative-opensource-src package in Ubuntu: Confirmed Status in qtdeclarative-opensource-src package in Ubuntu RTM: Fix Released Bug description: UPSTREAM BUG: https://bugreports.qt.io/browse/QTBUG-53726 Description (copied from the upstream bug I created) According to Flickable's documentation, widthRatio and heightRatio define "the percentage of the full view currently visible, scaled to 0.0 - 1.0". At the moment, defining leftMargin so that leftMargin+contentWidth < flickable.width causes widthRatio to be wrongly evaluated to something != 1, whereas it should be 1, because Flickable's defaults at -leftMargin (see https://github.com/qtproject/qtdeclarative/blob/5.6/src/quick/items/qquickflickable.cpp#L1592 ). and when contentX is -leftMargin, the whole content fits inside the view. As a consequence of that, in the current implementation you can also scroll the item from the testcase left and right, which shouldn't be possible (because item+margin are still smaller than the view). ============================ Additional Ubuntu-specific info: This is currently blocking the correct implementation of the new scrollbars inside TextFields (ping kalikiana or me (faenil) on IRC for more info) ========TESTCASE============ import QtQuick 2.0 Flickable { id: flickable width: 200 height: 200 contentWidth: item.width contentHeight: item.height topMargin: 20 leftMargin: 40 Component.onCompleted: console.log("xPos", flickable.visibleArea.xPosition, "widthRatio", flickable.visibleArea.widthRatio) Connections { target: flickable.visibleArea onXPositionChanged: console.log("xPosChanged", flickable.visibleArea.xPosition) onWidthRatioChanged: console.log("widthRatioChanged", flickable.visibleArea.widthRatio) } Rectangle { id: item width: 100 height: 100 color: "black" } } =========================== How to reproduce: 1) qmlscene testcase.qml 2) watch the console output Actual result: widthRatio is != 1 Expected result: widthRatio == 1 =========================== Fix: I worked on a fix which is being reviewed by upstream ---> https://codereview.qt-project.org/#/c/161043/ To manage notifications about this bug go to: https://bugs.launchpad.net/canonical-devices-system-image/+bug/1588238/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp