diff --git a/editor/js/ui/editor.js b/editor/js/ui/editor.js
index b5d2dd73d..f77262079 100644
--- a/editor/js/ui/editor.js
+++ b/editor/js/ui/editor.js
@@ -183,11 +183,24 @@ RED.editor = (function() {
*/
function prepareConfigNodeSelect(node,property,type,prefix) {
var input = $("#"+prefix+"-"+property);
- var node_def = RED.nodes.getType(type);
-
- input.replaceWith('');
+ if (input.length === 0 ) {
+ return;
+ }
+ var existingWidthCSS = input[0].style.width;
+ var newWidth;
+ if (existingWidthCSS !== '') {
+ if (/%/.test(existingWidthCSS)) {
+ newWidth = (input.width()-10)+"%";
+ } else {
+ newWidth = input.width()-50;
+ }
+ } else {
+ newWidth = "60%";
+ }
+ var select = $('');
+ select.width(newWidth);
+ input.replaceWith(select);
updateConfigNodeSelect(property,type,node[property],prefix);
- var select = $("#"+prefix+"-"+property);
select.after(' ');
$('#'+prefix+'-lookup-'+property).click(function(e) {
showEditConfigNodeDialog(property,type,select.find(":selected").val(),prefix);
@@ -195,6 +208,8 @@ RED.editor = (function() {
});
var label = "";
var configNode = RED.nodes.node(node[property]);
+ var node_def = RED.nodes.getType(type);
+
if (configNode && node_def.label) {
if (typeof node_def.label == "function") {
label = node_def.label.call(configNode);