Re-Layout dropdown width if columns change after appear
diff --git a/bundles/org.eclipse.rap.addons.dropdown/js/rwt/dropdown/DropDown.js b/bundles/org.eclipse.rap.addons.dropdown/js/rwt/dropdown/DropDown.js
index 8faa12e..560c535 100644
--- a/bundles/org.eclipse.rap.addons.dropdown/js/rwt/dropdown/DropDown.js
+++ b/bundles/org.eclipse.rap.addons.dropdown/js/rwt/dropdown/DropDown.js
@@ -230,6 +230,9 @@
     setColumns : function( columns ) {
       this._.columns = columns;
       this._.grid.setColumnCount( columns.length );
+      if( this._.visibility ) {
+        renderLayout.call( this );
+      }
     },
 
     /**
diff --git a/tests/org.eclipse.rap.addons.dropdown.test/js/rwt/dropdown/DropDown_Test.js b/tests/org.eclipse.rap.addons.dropdown.test/js/rwt/dropdown/DropDown_Test.js
index bc9741d..4947aa2 100644
--- a/tests/org.eclipse.rap.addons.dropdown.test/js/rwt/dropdown/DropDown_Test.js
+++ b/tests/org.eclipse.rap.addons.dropdown.test/js/rwt/dropdown/DropDown_Test.js
@@ -546,6 +546,14 @@
       assertEquals( 400, popup.getInnerWidth() );
     },
 
+    testSetColumns_setsPopUpWidthAfterAppear : function() {
+      showDropDown();
+      dropdown.setColumns( [ 100, 200, 100 ] );
+      TestUtil.flush();
+
+      assertEquals( 400, popup.getInnerWidth() );
+    },
+
     testSetColumns_setsDoesNotSetPopUpWidthIfSmaller : function() {
       dropdown.setColumns( [ 30 ] );
       showDropDown();