fix: dialog.showMessageBox
defaultid on Windows
#48216
Open
+12
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of Change
Closes #22600.
Fixes Windows message box default button handling.
On Windows,
dialog.showMessageBox
/showMessageBoxSync
ignored defaultId when it was 0 (first button) and failed whenever the target button text matched a common button (OK/Yes/No/Cancel/etc.), because we always offset withkIDStart instead of using the native common button ID. This meant the default focus could be wrong. The fix accepts
defaultId >= 0`, bounds‑checks it, and maps to the proper ID (common button ID or custom offset) before calling TaskDialogIndirect.Using the following code:
Before
After
Checklist
npm test
passesRelease Notes
Notes: Fixes Windows
dialog.showMessageBox
default button handling.