diff options
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ExpandItem.java')
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ExpandItem.java | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ExpandItem.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ExpandItem.java index 38b4eaab66..3261958b3f 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ExpandItem.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ExpandItem.java @@ -655,15 +655,20 @@ public void setImage (Image image) { super.setImage (image); if (imageList != null) imageList.dispose (); imageList = null; + if (image != null) { - if (image.isDisposed ()) error (SWT.ERROR_INVALID_ARGUMENT); - imageList = new ImageList (); - imageList.add (image); - GTK.gtk_image_set_from_surface(imageHandle, image.surface); + if (image.isDisposed()) error(SWT.ERROR_INVALID_ARGUMENT); + imageList = new ImageList(); + int index = imageList.add(image); + GTK.gtk_image_set_from_pixbuf(imageHandle, imageList.getPixbuf(index)); if (text.length () == 0) GTK.gtk_widget_hide (labelHandle); GTK.gtk_widget_show (imageHandle); } else { - GTK.gtk_image_set_from_surface(imageHandle, 0); + if (GTK.GTK4) { + GTK.gtk_image_clear(imageHandle); + } else { + GTK.gtk_image_set_from_surface(imageHandle, 0); + } GTK.gtk_widget_show (labelHandle); GTK.gtk_widget_hide (imageHandle); } |