Bug 284622 [CSS] Layout of ETabFolder not updating when Window->Reload Style Sheet
When you pick Window->Reload Style Sheet, some aspects of the ETabFolder isn't updating. Specifically, they're around spacing/layout, .e.g: - "tab-margin-offset:" has no immediate effect - changing padding doesn't grow the tab higher, just squishes the contents in - ETabItem margin-left: and margin-right: have no immediate effect The problem is that the setters are only changing the field value but not doing any udpating. We need something like: updateTabHeight(true); for vertical spacing changes updateItems(); for horizontal spacing changes redraw();
bundles/org.eclipse.e4.ui.widgets/src/org/eclipse/e4/ui/widgets/ETabFolder.java
int height = size.y - borderTop - borderBottom - tabHeight - highlight_header - highlight_margin;
		
		if (highlight_margin > 0) {
			int[] shape = null;
			if (onBottom) {
				int x1 = borderLeft;
				int y1 = borderTop;
				int x2 = size.x - borderRight;
				int y2 = size.y - borderBottom - tabHeight - highlight_header;
				shape = new int[] {x1,y1, x2,y1, x2,y2, x2-highlight_margin,y2,
						           x2-highlight_margin, y1+highlight_margin, x1+highlight_margin,y1+highlight_margin,
								   x1+highlight_margin,y2, x1,y2};
			} else {	
				int x1 = borderLeft;
				int y1 = borderTop + tabHeight + highlight_header;
				int x2 = size.x - borderRight;
				int y2 = size.y - borderBottom;
				shape = new int[] {x1,y1, x1+highlight_margin,y1, x1+highlight_margin,y2-highlight_margin, 
						           x2-highlight_margin,y2-highlight_margin, x2-highlight_margin,y1,
								   x2,y1, x2,y2, x1,y2};
			}
			
			if (selectedIndex != -1 && selectionGradientColors != null && selectionGradientColors.length > 1 && !selectionGradientVertical) {
				drawBackground(gc, shape, true);
			} else if (selectedIndex == -1 && gradientColors != null && gradientColors.length > 1 && !gradientVertical) {
				drawBackground(gc, shape, false);
			} else {
				gc.setBackground(selectedIndex == -1 ? getBackground() : selectionBackground);
				gc.fillPolygon(shape);
			}