@@ -33,15 +33,18 @@ LocalComponents.Page {
3333 readonly property alias password: passwordField.text
3434 readonly property alias password2: password2Field.text
3535
36− GridLayout {
36+ Flickable {
3737 id: column
38− columns: 1
39− rows: 3
38+ clip: true
39+ flickableDirection: Flickable.VerticalFlick
4040 anchors.fill: content
41− anchors.leftMargin: leftMargin
42− anchors.rightMargin: rightMargin
41+ anchors.leftMargin: parent.leftMargin
42+ anchors.rightMargin: parent.rightMargin
4343 anchors.topMargin: customMargin
44− rowSpacing: units.gu(3)
44+
45+ bottomMargin: Qt.inputMethod.keyboardRectangle.height - height - customMargin
46+
47+ Behavior on contentY { UbuntuNumberAnimation {} }
4548
4649 Label {
4750 id: infoLabel
@@ -49,6 +52,7 @@ LocalComponents.Page {
4952 anchors {
5053 left: parent.left
5154 right: parent.right
55+ top: parent.top
5256 }
5357 wrapMode: Text.Wrap
5458 font.weight: Font.Light
@@ -57,6 +61,13 @@ LocalComponents.Page {
5761 }
5862
5963 GridLayout {
64+ anchors {
65+ left: parent.left
66+ right: parent.right
67+ top: infoLabel.bottom
68+ topMargin: units.gu(3)
69+ }
70+
6071 columns: 2
6172 columnSpacing: units.gu(2)
6273 rowSpacing: units.gu(2)
@@ -74,6 +85,11 @@ LocalComponents.Page {
7485 validator: RegExpValidator { regExp: /^\d{4}$/ }
7586 maximumLength: 4
7687 onAccepted: password2Field.forceActiveFocus()
88+ onActiveFocusChanged: {
89+ if (activeFocus) {
90+ column.contentY = y
91+ }
92+ }
7793 }
7894
7995 Label {
@@ -88,6 +104,11 @@ LocalComponents.Page {
88104 inputMethodHints: Qt.ImhDigitsOnly
89105 validator: RegExpValidator { regExp: /^\d{4}$/ }
90106 maximumLength: 4
107+ onActiveFocusChanged: {
108+ if (activeFocus) {
109+ column.contentY = y
110+ }
111+ }
91112 }
92113
93114 Label {
@@ -112,10 +133,6 @@ LocalComponents.Page {
112133 }
113134 }
114135 }
115−
116− Item { // spacer
117− Layout.fillHeight: true
118− }
119136 }
120137
121138 Component {