diff options
| author | hallgren <hallgren@chalmers.se> | 2012-03-19 00:35:10 +0000 |
|---|---|---|
| committer | hallgren <hallgren@chalmers.se> | 2012-03-19 00:35:10 +0000 |
| commit | 387deecd3147493619ebd3d2aa53167c9e7f6e61 (patch) | |
| tree | 9a2768d957accbf4a7abae224b50ae62a4e2d33f | |
| parent | 0591f776585450cee70d8f322738dd51f5a8f5b8 (diff) | |
minibar: don't try to select the most recently used grammar if it isn't in the current grammar list
| -rw-r--r-- | src/www/minibar/minibar.js | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/src/www/minibar/minibar.js b/src/www/minibar/minibar.js index 02c770e83..d52e67881 100644 --- a/src/www/minibar/minibar.js +++ b/src/www/minibar/minibar.js @@ -74,17 +74,27 @@ Minibar.prototype.show_grammarlist=function(grammars) { if(grammars.length>1) { function opt(g) { return option(g,g); } appendChildren(grammar_menu,map(opt,grammars)); - grammar_menu.onchange= - bind(function() { select_grammar(grammar_menu.value); },this); + function pick() { + var grammar_name=grammar_menu.value + if(window.localStorage) + localStorage["gf.minibar.last_grammar"]=grammar_name; + select_grammar(grammar_name); + } + grammar_menu.onchange=bind(pick,this); insertFirst(menubar,button("i",bind(show_grammarinfo,this))) insertFirst(menubar,grammar_menu); insertFirst(menubar,text("Grammar: ")); } if(options.help_url) menubar.appendChild(button("Help",bind(open_help,this))); - var grammar0= options.initial_grammar - || window.localStorage && localStorage["gf.minibar.last_grammar"] - || grammars[0]; + var grammar0=options.initial_grammar + if(!grammar0 && window.localStorage) { + var last_grammar=localStorage["gf.minibar.last_grammar"]; + if(last_grammar) + for(var i in grammars) + if(last_grammar==grammars[i]) grammar0=last_grammar; + } + if(!grammar0) grammar0=grammars[0]; grammar_menu.value=grammar0; select_grammar(grammar0); } @@ -94,8 +104,6 @@ Minibar.prototype.select_grammar=function(grammar_name) { var t=this; //debug("select_grammar "); function change_grammar() { - if(window.localStorage) - localStorage["gf.minibar.last_grammar"]=grammar_name; t.server.grammar_info(bind(t.change_grammar,t)); } t.server.switch_grammar(grammar_name,change_grammar); |
