Bug 26133 [Dialogs] TitleAreaDialog status line blinks when newMessage == currentMessage
Build id: 200211051258 The current implementation for TitleAreaDialog#showMessage(String,int) method has a guard against updates to the message with the same content (to avoid needlessly blinking). The problem is that after that the message may be concatenated with a space character: ==================== //If there is an image then add in a space to the message //for layout purposes if(newImage != null) message = " " + message; //$NON-NLS-1$ ==================== So the guard will fail in the next call even if the same string is provided by the client.
bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/TitleAreaDialog.java
int verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
	int horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
	
	
	if (errorMessage == null && messageImage == null) {
		setImageLabelVisible(false);
		
		setLayoutsForNormalMessage(verticalSpacing,horizontalSpacing);
		
	} else {
		messageImageLabel.setVisible(true);
		bottomFillerLabel.setVisible(true);
		leftFillerLabel.setVisible(true);
		
		/**
		 * Note that we do not use horizontalSpacing here 
		 * as when the background of the messages changes
		 * there will be gaps between the icon label and the
		 * message that are the background color of the shell.
		 * We add a leading space elsewhere to compendate for this.
		 */
		FormData data = new FormData();
		data.left = new FormAttachment(0, H_GAP_IMAGE);
		data.top = new FormAttachment(titleLabel, verticalSpacing);
		messageImageLabel.setLayoutData(data);
		
		data = new FormData();
		data.top = new FormAttachment(messageImageLabel, 0);
		data.left = new FormAttachment(0, 0);