Dave,
The hard coding of the 40px comes from the LayoutMnager.js in the jimu folder (see line 21-24):
_createPreloadWidgetIcon: function(widgetConfig){
var iconDijit = new OnScreenWidgetIcon({
panelManager: this.panelManager,
widgetManager: this.widgetManager,
widgetConfig: widgetConfig,
configId: widgetConfig.id,
map: this.map
});
if(widgetConfig.position.relativeTo === 'map'){
html.place(iconDijit.domNode, this.mapId);
}else{
html.place(iconDijit.domNode, this.id);
}
//icon position doesn't use width/height in config
html.setStyle(iconDijit.domNode, utils.getPositionStyle({
top: widgetConfig.position.top,
left: widgetConfig.position.left,
right: widgetConfig.position.right,
bottom: widgetConfig.position.bottom,
/*width: 40,
height: 40*/
width: 105,
height: 105
}));
iconDijit.startup();
if(!this.openAtStartWidget && widgetConfig.openAtStart){
iconDijit.switchToOpen();
this.openAtStartWidget = widgetConfig.name;
}
this.preloadWidgetIcons.push(iconDijit);
return iconDijit;
},