Apply a bodge to arrange that if the user selects Custom from the game

type dropdown, we still get an 'onchange' event if they select it a
second time. Normally this wouldn't happen, because onchange means
what it says and we only get it if a _different_ element is selected.

My solution is to create two list items called Custom, set one of them
as display:none to stop it showing up when the list is dropped down,
and to select it after the configuration box closes.

[originally from svn r9788]
This commit is contained in:
Simon Tatham
2013-03-31 09:58:46 +00:00
parent 3e39f6b80b
commit 9826ecd5c3
3 changed files with 53 additions and 4 deletions

View File

@ -78,7 +78,14 @@ var dlg_return_sval, dlg_return_ival;
// The <select> object implementing the game-type drop-down, and a
// list of the <option> objects inside it. Used by js_add_preset(),
// js_get_selected_preset() and js_select_preset().
//
// gametypehiddencustom is a second copy of the 'Custom' dropdown
// element, set to display:none. This is used by a bodge in emcclib.js
// (see comment in js_add_preset) to arrange that if the Custom
// element is (apparently) already selected, we still find out if the
// user selects it again.
var gametypeselector = null, gametypeoptions = [];
var gametypehiddencustom = null;
// The two anchors used to give permalinks to the current puzzle. Used
// by js_update_permalinks().