@@ -56,12 +56,13 @@ Showable {
5656 }
5757
5858 height: minimizedPanelHeight
59− onHeightChanged: {
60− var revealProgress = root.height - minimizedPanelHeight;
6159
60+ onUnitProgressChanged: {
6261 if (!showAnimation.running && !hideAnimation.running) {
63− if (revealProgress <= 0) {
62+ if (unitProgress <= 0) {
6463 root.state = "initial";
64+ } else if (unitProgress >= 0.9 && d.hasCommitted) {
65+ root.state = "locked";
6566 } else {
6667 root.state = "reveal";
6768 }
@@ -224,6 +225,7 @@ Showable {
224225 QtObject {
225226 id: d
226227 property var activeDragHandle: showDragHandle.dragging ? showDragHandle : hideDragHandle.dragging ? hideDragHandle : null
228+ property bool hasCommitted: false
227229
228230 property real rowMappedLateralPosition: {
229231 if (!d.activeDragHandle) return -1;
@@ -234,6 +236,7 @@ Showable {
234236 states: [
235237 State {
236238 name: "initial"
239+ PropertyChanges { target: d; hasCommitted: false; restoreEntryValues: false }
237240 },
238241 State {
239242 name: "reveal"
@@ -271,14 +274,17 @@ Showable {
271274 return mapped.x;
272275 }
273276 }
277+ PropertyChanges { target: d; hasCommitted: false; restoreEntryValues: false }
278+ },
279+ State {
280+ name: "locked"
281+ PropertyChanges { target: bar; expanded: true }
274282 },
275283 State {
276284 name: "commit"
277− PropertyChanges {
278− target: bar
279− expanded: true
280− interactive: true
281− }
285+ extend: "locked"
286+ PropertyChanges { target: bar; interactive: true }
287+ PropertyChanges { target: d; hasCommitted: true; restoreEntryValues: false }
282288 }
283289 ]
284290 state: "initial"