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 bool dmenuMultiple: false
|
||||
property var dmenuSelected: []
|
||||
// What the last confirmed change applied; a failed change returns the checks here.
|
||||
property var dmenuSaved: []
|
||||
property string dmenuChangeKey: ""
|
||||
property var dmenuOnChange: []
|
||||
property string selectionFile: ""
|
||||
@@ -911,6 +913,7 @@ Item {
|
||||
&& payload.onChange.every(function(arg) { return typeof arg === "string" }) ? payload.onChange : []
|
||||
dmenuChangeKey = String(payload.changeKey || JSON.stringify(dmenuOnChange))
|
||||
dmenuSelected = MenuModel.dmenuSelections(dmenuOptions, Array.isArray(payload.selected) ? payload.selected : [], dmenuOnChange.length > 0)
|
||||
dmenuSaved = dmenuSelected
|
||||
if (dmenuOnChange.length > 0)
|
||||
dmenuSelected = MenuModel.dmenuSelections(dmenuOptions, selectionProc.requestedSelection(), true)
|
||||
selectionFile = String(payload.selectionFile || "")
|
||||
@@ -1039,6 +1042,9 @@ Item {
|
||||
}
|
||||
if (Array.isArray(applied))
|
||||
root.dmenuSelected = MenuModel.dmenuSelections(root.dmenuOptions, applied, true)
|
||||
root.dmenuSaved = root.dmenuSelected
|
||||
} else {
|
||||
root.dmenuSelected = root.dmenuSaved
|
||||
}
|
||||
root.updateDmenuChecks()
|
||||
}
|
||||
|
||||
@@ -674,6 +674,11 @@ assert(
|
||||
/onPositionChanged: function\(mouse\) \{\s*root\.selectFromPointer\(row\.index, row, mouse\)\s*\}/.test(menuQml),
|
||||
'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(
|
||||
/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'
|
||||
|
||||
Reference in new issue
Block a user