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; }