Bug 302918 - do not call setImage(null) from setDisabledImage()

Only set "disabled" image coming from setDisabledImage() if it is not
null. THis avoids cases where disabled contributions without disabled
image provided get "blank" icons. like in bug 551586 comment 11.

Change-Id: Ib91c541a9cdaa7498db78d010c61ae68cb4353e8
Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ToolItem.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ToolItem.java
index 1d4926a..9553562 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ToolItem.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ToolItem.java
@@ -992,9 +992,9 @@
 		} else {
 			imageList.put (imageIndex, image);
 		}
-	}
-	if (!enabled) {
-		setImage(image);
+		if (!enabled) {
+			setImage(image);
+		}
 	}
 }
 
diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_ToolItem.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_ToolItem.java
index f8dbccb..2455082 100644
--- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_ToolItem.java
+++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_ToolItem.java
@@ -69,23 +69,37 @@
 		toolItem.setImage(images[0]);
 		toolItem.setDisabledImage(images[1]);
 		toolItem.setEnabled(false);
-		assertEquals(images[1], item.getImage());
+		assertEquals(images[1], toolItem.getImage());
+
 		toolItem.setEnabled(true);
-		assertEquals(images[0], item.getImage());
+		assertEquals(images[0], toolItem.getImage());
+
 		toolItem.setDisabledImage(images[0]);
-		assertEquals(images[0], item.getImage());
+		assertEquals(images[0], toolItem.getImage());
+
 		toolItem.setEnabled(false);
-		assertEquals(images[0], item.getImage());
+		assertEquals(images[0], toolItem.getImage());
+
 		toolItem.setImage(images[0]);
 		toolItem.setEnabled(true);
-		assertEquals(images[0], item.getImage());
+		assertEquals(images[0], toolItem.getImage());
+
 		toolItem.setDisabledImage(images[2]);
 		toolItem.setEnabled(false);
-		assertEquals(images[2], item.getImage());
+		assertEquals(images[2], toolItem.getImage());
+
 		toolItem.setEnabled(true);
 		toolItem.setDisabledImage(null);
 		toolItem.setEnabled(false);
-		assertEquals(images[0], item.getImage());
+		assertEquals(images[0], toolItem.getImage());
+
+		toolItem.setEnabled(true);
+		toolItem.setDisabledImage(null);
+		assertEquals(images[0], toolItem.getImage());
+
+		toolItem.setEnabled(false);
+		toolItem.setDisabledImage(null);
+		assertEquals(images[0], toolItem.getImage());
 	}
 }