Restore confirmed picker checks when an immediate change fails
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
2774a09e0b
commit
1371ea7b5d
2 files changed
+11
No files matched your search
@@ -59,6 +59,8 @@ Item {
|
|||||||
property var dmenuOptions: []
|
property var dmenuOptions: []
|
||||||
property bool dmenuMultiple: false
|
property bool dmenuMultiple: false
|
||||||
property var dmenuSelected: []
|
property var dmenuSelected: []
|
||||||
|
// What the last confirmed change applied; a failed change returns the checks here.
|
||||||
|
property var dmenuSaved: []
|
||||||
property string dmenuChangeKey: ""
|
property string dmenuChangeKey: ""
|
||||||
property var dmenuOnChange: []
|
property var dmenuOnChange: []
|
||||||
property string selectionFile: ""
|
property string selectionFile: ""
|
||||||
@@ -911,6 +913,7 @@ Item {
|
|||||||
&& payload.onChange.every(function(arg) { return typeof arg === "string" }) ? payload.onChange : []
|
&& payload.onChange.every(function(arg) { return typeof arg === "string" }) ? payload.onChange : []
|
||||||
dmenuChangeKey = String(payload.changeKey || JSON.stringify(dmenuOnChange))
|
dmenuChangeKey = String(payload.changeKey || JSON.stringify(dmenuOnChange))
|
||||||
dmenuSelected = MenuModel.dmenuSelections(dmenuOptions, Array.isArray(payload.selected) ? payload.selected : [], dmenuOnChange.length > 0)
|
dmenuSelected = MenuModel.dmenuSelections(dmenuOptions, Array.isArray(payload.selected) ? payload.selected : [], dmenuOnChange.length > 0)
|
||||||
|
dmenuSaved = dmenuSelected
|
||||||
if (dmenuOnChange.length > 0)
|
if (dmenuOnChange.length > 0)
|
||||||
dmenuSelected = MenuModel.dmenuSelections(dmenuOptions, selectionProc.requestedSelection(), true)
|
dmenuSelected = MenuModel.dmenuSelections(dmenuOptions, selectionProc.requestedSelection(), true)
|
||||||
selectionFile = String(payload.selectionFile || "")
|
selectionFile = String(payload.selectionFile || "")
|
||||||
@@ -1039,6 +1042,9 @@ Item {
|
|||||||
}
|
}
|
||||||
if (Array.isArray(applied))
|
if (Array.isArray(applied))
|
||||||
root.dmenuSelected = MenuModel.dmenuSelections(root.dmenuOptions, applied, true)
|
root.dmenuSelected = MenuModel.dmenuSelections(root.dmenuOptions, applied, true)
|
||||||
|
root.dmenuSaved = root.dmenuSelected
|
||||||
|
} else {
|
||||||
|
root.dmenuSelected = root.dmenuSaved
|
||||||
}
|
}
|
||||||
root.updateDmenuChecks()
|
root.updateDmenuChecks()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -674,6 +674,11 @@ assert(
|
|||||||
/onPositionChanged: function\(mouse\) \{\s*root\.selectFromPointer\(row\.index, row, mouse\)\s*\}/.test(menuQml),
|
/onPositionChanged: function\(mouse\) \{\s*root\.selectFromPointer\(row\.index, row, mouse\)\s*\}/.test(menuQml),
|
||||||
'menu row hover routes through pointer movement gate'
|
'menu row hover routes through pointer movement gate'
|
||||||
)
|
)
|
||||||
|
assert(
|
||||||
|
/dmenuSaved = dmenuSelected\s*\n\s*if \(dmenuOnChange\.length > 0\)/.test(menuQml)
|
||||||
|
&& /root\.dmenuSaved = root\.dmenuSelected\s*\n\s*\} else \{\s*root\.dmenuSelected = root\.dmenuSaved/.test(menuQml),
|
||||||
|
'a failed immediate change restores the confirmed checks, even after reopening onto queued ones'
|
||||||
|
)
|
||||||
assert(
|
assert(
|
||||||
/onEntered: root\.selectFromPointer\(row\.index, row, \{\s*x: mouseArea\.mouseX,\s*y: mouseArea\.mouseY\s*\}\)/.test(menuQml),
|
/onEntered: root\.selectFromPointer\(row\.index, row, \{\s*x: mouseArea\.mouseX,\s*y: mouseArea\.mouseY\s*\}\)/.test(menuQml),
|
||||||
'menu samples pointer movement immediately when entering a row'
|
'menu samples pointer movement immediately when entering a row'
|
||||||
|
|||||||
Reference in new issue
Block a user