diff options
author | Andrey Loskutov | 2019-11-14 10:04:24 +0000 |
---|---|---|
committer | Andrey Loskutov | 2019-11-14 10:11:42 +0000 |
commit | d55af1c18f895e76223f6eb1d61e49dc8196d582 (patch) | |
tree | 134c63e257f2b39de3c4b51b56a01f2da9f1e0df | |
parent | 45ee5a17375bcba7074fd584564b08991ba0aa45 (diff) | |
download | eclipse.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>
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()); } } |