[PR #6231] Give cursor radio buttons their own sequential IDs in propsheet #26617

Open
opened 2026-01-31 09:17:09 +00:00 by claunia · 0 comments
Owner

Original Pull Request: https://github.com/microsoft/terminal/pull/6231

State: closed
Merged: Yes


Summary of the Pull Request

For a radio button group to work properly, they need sequential IDs. This moves the cursor radio buttons on the conhost property sheet to be sequential.

References

PR Checklist

  • Closes unfiled issue found while investigating #4186
  • I work here.
  • Manual test.
  • No documentation required.
  • Am core contributor.

Detailed Description of the Pull Request / Additional comments

  • CheckRadioButton takes a contiguous group of IDs. It will set one item in the list and then uncheck the rest. When a new one was added to the group, it was added to the end of the segment in the IDs file, but not immediately after the existing radio buttons. This means it accidentally turned off all the other buttons in the middle.
  • To resolve this, I moved all the cursor buttons into their own sequential group number and I deprecated the old values.

Validation Steps Performed

  • Ensured that the "Discard Old Duplicates" value was set in the registry, walked through debugger as conhost packed the TRUE value into the property sheet blob, walked through the property sheet console.dll as it unpacked the TRUE, then observed that the checkbox was actually set instead of getting unset by the CheckRadioButton call that went from 107 to 119 and accidentally unchecked number 112, IDD_HISTORY_NODUP even though I swear it was just set.
**Original Pull Request:** https://github.com/microsoft/terminal/pull/6231 **State:** closed **Merged:** Yes --- ## Summary of the Pull Request For a radio button group to work properly, they need sequential IDs. This moves the cursor radio buttons on the `conhost` property sheet to be sequential. ## References - Introduced with #2663 - Found while investigating #4186 ## PR Checklist * [x] Closes unfiled issue found while investigating #4186 * [x] I work here. * [x] Manual test. * [x] No documentation required. * [x] Am core contributor. ## Detailed Description of the Pull Request / Additional comments - `CheckRadioButton` takes a contiguous group of IDs. It will set one item in the list and then uncheck the rest. When a new one was added to the group, it was added to the end of the segment in the IDs file, but not immediately after the existing radio buttons. This means it accidentally turned off all the other buttons in the middle. - To resolve this, I moved all the cursor buttons into their own sequential group number and I deprecated the old values. ## Validation Steps Performed - [x] Ensured that the "Discard Old Duplicates" value was set in the registry, walked through debugger as `conhost` packed the `TRUE` value into the property sheet blob, walked through the property sheet `console.dll` as it unpacked the `TRUE`, then observed that the checkbox was actually set instead of getting unset by the `CheckRadioButton` call that went from 107 to 119 and accidentally unchecked number 112, `IDD_HISTORY_NODUP` even though I swear it was just set.
claunia added the pull-request label 2026-01-31 09:17:09 +00:00
Sign in to join this conversation.
No Label pull-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#26617