diff --git a/include/wx/gtk/private/image.h b/include/wx/gtk/private/image.h index ed5e7091bc..c346cd7919 100644 --- a/include/wx/gtk/private/image.h +++ b/include/wx/gtk/private/image.h @@ -31,3 +31,4 @@ public: }; #define WX_GTK_IMAGE(obj) G_TYPE_CHECK_INSTANCE_CAST(obj, wxGtkImage::Type(), wxGtkImage) +#define WX_GTK_IS_IMAGE(obj) G_TYPE_CHECK_INSTANCE_TYPE(obj, wxGtkImage::Type()) diff --git a/src/gtk/anybutton.cpp b/src/gtk/anybutton.cpp index a35f01addc..95c32aeabc 100644 --- a/src/gtk/anybutton.cpp +++ b/src/gtk/anybutton.cpp @@ -192,7 +192,10 @@ void wxAnyButton::GTKDoShowBitmap(const wxBitmap& bitmap) wxCHECK_RET(GTK_IS_IMAGE(image), "must have image widget"); - WX_GTK_IMAGE(image)->Set(bitmap); + if (WX_GTK_IS_IMAGE(image)) + WX_GTK_IMAGE(image)->Set(bitmap); + else + gtk_image_set_from_pixbuf(GTK_IMAGE(image), bitmap.GetPixbuf()); } wxBitmap wxAnyButton::DoGetBitmap(State which) const