** Changed in: canonical-devices-system-image
       Status: Fix Committed => Fix Released

You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to qtdeclarative-opensource-
src in Ubuntu.

  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 Released
Status in qtdeclarative-opensource-src package in Ubuntu:
  Fix Released
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
  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)


  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", 
          onWidthRatioChanged: console.log("widthRatioChanged", 
      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 --->

To manage notifications about this bug go to:

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

Reply via email to