We have a Windows desktop program where from the Main screen users open a settings dialog (Dialog A). On this dialog they can edit various settings and once finished, they can click OK and changes are saved and the dialog closes. Or they can click Cancel and the dialog closes without saving.

Additionally, from Dialog A, some settings open a 2nd dialog (Dialog B) for editing that particular setting. As before, Dialog B also has an OK and Cancel button.

If users edit a value in Dialog B and click OK, the change made is saved and they return to the still open Dialog A. But my question is, what happens if they now click Cancel in Dialog A? Should the changes made in Dialog B also be cancelled or should they remain applied? Explanatory diagram

2 Answers 2


Discard change.

Make it clear that Dialog B edits part of configuration that Dialog A controls. Do this by:

show system state make the values that Dialog B edits displayed as a summary change-set in Dialog A

use different buttons have "Save" / "Apply" on Dialog A and "OK" / "Done" on Dialog B

I wouldn't recommend having that interaction pattern in first place. But default to the option that is safer - normally that is writing all changed settings together.


I've marked the above answer as the correct one because it agrees with the Microsoft guidelines that I've subsequently found.

Our dialog is a 'Properties Window' type of dialog (see link) https://msdn.microsoft.com/en-us/library/windows/desktop/dn742500(v=vs.85).aspx

The guidelines for this dialog say: For property windows that use a delayed commit model, make sure users can cancel changes made in an owned property window by clicking Cancel on the owner window.

  • This answer, I think, belongs as an edit in your original question.
    – Mayo
    Feb 12, 2016 at 15:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.