aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_keymap.cpp
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-10-31 12:14:12 +0100
committerDanilo M. <danix@danix.xyz>2026-10-31 12:14:12 +0100
commita30b4c2f2c0b11b7484ae91574755deb5b9a5be9 (patch)
tree709b9adb5449bbabba897916a74fdc7d52145be4 /tests/test_keymap.cpp
parentb1f6660b9f1471659ead81cf527d13d93dd57146 (diff)
downloadqtmaildir-a30b4c2f2c0b11b7484ae91574755deb5b9a5be9.tar.gz
qtmaildir-a30b4c2f2c0b11b7484ae91574755deb5b9a5be9.zip
fix: credit a tag confirmation to the command whose tags it names
onTagsApplied() handed each confirmation to the head of the waiting queue. The worker stays silent for a write that moved nothing, so when one operation of a rule found nothing to do (another writer got there between the count and the write), the next operation's ids were credited to it, and its undo inverted the wrong tag on the wrong messages: item 176 through a race. A confirmation now goes to the first waiting command whose add and remove sets equal the change's, and the commands ahead of it are dropped with no ids, so their undo stays a no-op. Equal-tag commands, the two halves of a mixed selection, still match in send order. No match credits nobody. TagCommand carries its own add and remove to make the comparison. Items 176 and 212. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'tests/test_keymap.cpp')
0 files changed, 0 insertions, 0 deletions