diff --git a/lib/ace/ext/menu_tools/generate_settings_menu.js b/lib/ace/ext/menu_tools/generate_settings_menu.js
index ecda88ab..16d3a76c 100644
--- a/lib/ace/ext/menu_tools/generate_settings_menu.js
+++ b/lib/ace/ext/menu_tools/generate_settings_menu.js
@@ -43,6 +43,10 @@
define(function(require, exports, module) {
'use strict';
+var egen = require('./element_generator');
+var addEditorMenuOptions = require('./add_editor_menu_options').addEditorMenuOptions;
+var getSetFunctions = require('./get_set_functions').getSetFunctions;
+
/**
* Generates an interactive menu with settings useful to end users.
* @author
@@ -51,8 +55,6 @@ define(function(require, exports, module) {
* @param {ace.Editor} editor An instance of the ace editor.
*/
module.exports.generateSettingsMenu = function generateSettingsMenu (editor) {
- var addEditorMenuOptions = require('./add_editor_menu_options').addEditorMenuOptions;
- var getSetFunctions = require('./get_set_functions').getSetFunctions;
/**
* container for dom elements that will go in the menu.
* @author
@@ -109,7 +111,6 @@ module.exports.generateSettingsMenu = function generateSettingsMenu (editor) {
* the dom element's value, checked, or selected option accordingly.
*/
function createNewEntry(obj, clss, item, val) {
- var egen = require('./element_generator');
var el;
var div = document.createElement('div');
div.setAttribute('contains', item);
@@ -130,7 +131,6 @@ module.exports.generateSettingsMenu = function generateSettingsMenu (editor) {
delete x.selected;
}
});
- // editor.session['setMode']('ace/mode/javascript')
obj[e.target.id](e.target.value);
} catch (err) {
throw new Error(err);
@@ -151,7 +151,7 @@ module.exports.generateSettingsMenu = function generateSettingsMenu (editor) {
// post and get requests.
// /ace_editor.html?setMode=ace/mode/html&setOverwrite=true
el = egen.createInput(item, val, clss);
- el.addEventListener('blur', function(e) {
+ el.addEventListener('change', function(e) {
try{
if(e.target.value === 'true') {
obj[e.target.id](true);
@@ -185,14 +185,12 @@ module.exports.generateSettingsMenu = function generateSettingsMenu (editor) {
*/
function makeDropdown(item, esr, clss, fn) {
var val = editor.menuOptions[item];
- val = val.map(function(valuex) {
- if(valuex.value === esr[fn]()) {
+ var currentVal = esr[fn]();
+ if (typeof currentVal == 'object')
+ currentVal = currentVal.$id;
+ val.forEach(function(valuex) {
+ if (valuex.value === currentVal)
valuex.selected = 'selected';
- } else if(valuex.value === esr.$modeId) {
- // is mode
- valuex.selected = 'selected';
- }
- return valuex;
});
return createNewEntry(esr, clss, item, val);
}
diff --git a/lib/ace/ext/menu_tools/settings_menu.css b/lib/ace/ext/menu_tools/settings_menu.css
index 006e1a7e..8e14a903 100644
--- a/lib/ace/ext/menu_tools/settings_menu.css
+++ b/lib/ace/ext/menu_tools/settings_menu.css
@@ -31,7 +31,7 @@
border-radius: 50%;
padding: 7px;
position: absolute;
- left: -8px;
+ right: -8px;
top: -8px;
z-index: 1000;
}