Solution: Code: import QtQuick 2.0 import Sailfish.Silica 1.0 Page { id: page MouseArea { id: dragArea width: 270 height: 270 Connections { target: dragArea.parent onHeightChanged: { var xx = dragArea.x var yy = dragArea.y if (dragArea.parent.width > dragArea.parent.height) { dragArea.x = yy dragArea.y = dragArea.parent.height - dragArea.height - xx } else { dragArea.x = dragArea.parent.width - dragArea.width - yy dragArea.y = xx } } } Rectangle { anchors.fill: parent color: "red" } drag.target: dragArea drag.minimumX: 0 drag.minimumY: 0 drag.maximumY: parent.height - height drag.maximumX: parent.width - width } }
import QtQuick 2.0 import Sailfish.Silica 1.0 Page { id: page MouseArea { id: dragArea width: 270 height: 270 Connections { target: dragArea.parent onHeightChanged: { var xx = dragArea.x var yy = dragArea.y if (dragArea.parent.width > dragArea.parent.height) { dragArea.x = yy dragArea.y = dragArea.parent.height - dragArea.height - xx } else { dragArea.x = dragArea.parent.width - dragArea.width - yy dragArea.y = xx } } } Rectangle { anchors.fill: parent color: "red" } drag.target: dragArea drag.minimumX: 0 drag.minimumY: 0 drag.maximumY: parent.height - height drag.maximumX: parent.width - width } }