** 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

Reply via email to