Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrey Loskutov2019-11-14 10:04:24 +0000
committerAndrey Loskutov2019-11-14 10:11:42 +0000
commitd55af1c18f895e76223f6eb1d61e49dc8196d582 (patch)
tree134c63e257f2b39de3c4b51b56a01f2da9f1e0df
parent45ee5a17375bcba7074fd584564b08991ba0aa45 (diff)
downloadeclipse.platform.swt-d55af1c18f895e76223f6eb1d61e49dc8196d582.tar.gz
eclipse.platform.swt-d55af1c18f895e76223f6eb1d61e49dc8196d582.tar.xz
eclipse.platform.swt-d55af1c18f895e76223f6eb1d61e49dc8196d582.zip
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>
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ToolItem.java6
-rw-r--r--tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_ToolItem.java28
2 files changed, 24 insertions, 10 deletions
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 1d4926a0ba..9553562596 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 @@ public void setDisabledImage (Image image) {
} 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 f8dbccbec9..2455082cc1 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 @@ public void test_setDisabledImage() {
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], toolItem.getImage());
+
toolItem.setEnabled(true);
toolItem.setDisabledImage(null);
+ assertEquals(images[0], toolItem.getImage());
+
toolItem.setEnabled(false);
- assertEquals(images[0], item.getImage());
+ toolItem.setDisabledImage(null);
+ assertEquals(images[0], toolItem.getImage());
}
}

Back to the top