Bug 125651 [Forms] Wrapped hyperlinks cause artifacts in FormText
There seems to be an off-by-one error in the FormText widget between images and text. See the example below and the corresponding screenshot: final FormText text = formToolkit.createFormText(parent, false/*no links so not a concern*/); text.setForeground(formColors.getColor(DataEntryFormColors.FORM_ELEMENT_FOREGROUND)); text.setBackground(formColors.getColor(DataEntryFormColors.FORM_LABEL_BACKGROUND)); text.setWhitespaceNormalized(false/*don't remove whitespace*/); text.setText("<form><p><img href=\"addNewLabel\"/> <img href=\"deleteLabel\"/>This is a really really really long line to test the wrapping of text. This is a really really really long line to test the wrapping of text. This is a really really really long line to test the wrapping of text.</p></form>", true/*parse tags*/, false/*no links so no concern*/); text.setImage("addNewLabel", addNewLabelImage); text.setImage("deleteLabel", deleteLabelImage); This widget is within a form using TableWrapLayout. (SWT 3.2M4)
bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/TextSegment.java
gc.drawText(s, clipX, clipY, true);
	}
	private void drawUnderline(GC gc, int swidth, int x, int y, boolean hover,
			boolean rolloverMode) {
		if (underline || rolloverMode) {
			Color saved = null;
			if (rolloverMode && !hover) {
				saved = gc.getForeground();
				gc.setForeground(gc.getBackground());
			}
			gc.drawLine(x, y, x + swidth-1, y);
			if (saved != null)
				gc.setForeground(saved);
		}
	}
	/*
	 * (non-Javadoc)
	 * 
	 * @see org.eclipse.ui.internal.forms.widgets.ParagraphSegment#layout(org.eclipse.swt.graphics.GC,
	 *      int, org.eclipse.ui.internal.forms.widgets.Locator,
	 *      java.util.Hashtable, boolean,
	 *      org.eclipse.ui.internal.forms.widgets.SelectionData)
	 */
	public void layout(GC gc, int width, Locator locator,
			Hashtable resourceTable, boolean selected) {
		Font oldFont = null;
		areaRectangles.clear();
		if (fontId != null) {
			oldFont = gc.getFont();
			Font newFont = (Font) resourceTable.get(fontId);