Don't forget to restore the correct selection in the dropdown list if

the user cancels a configuration dialog.

[originally from svn r9789]
This commit is contained in:
Simon Tatham
2013-03-31 09:58:47 +00:00
parent 9826ecd5c3
commit 3603131ac1

15
emcc.c
View File

@ -581,8 +581,21 @@ static void cfg_end(int use_results)
} }
} else { } else {
/* /*
* User hit Cancel. Just close the dialog. * User hit Cancel. Close the dialog, but also we must still
* reselect the right element of the dropdown list.
*
* (Because: imagine you have a preset selected, and then you
* select Custom from the list, but change your mind and hit
* Esc. The Custom option will now still be selected in the
* list, whereas obviously it should show the preset you still
* _actually_ have selected. Worse still, it'll be the visible
* rather than invisible Custom option - see the comment in
* js_add_preset in emcclib.js - so you won't even be able to
* select Custom without a faffy workaround.)
*/ */
int preset = midend_which_preset(me);
js_select_preset(preset < 0 ? custom_preset : preset);
free_cfg(cfg); free_cfg(cfg);
js_dialog_cleanup(); js_dialog_cleanup();
} }