From e9bf5149769861cc23a2cd1e797d4d5730d951a5 Mon Sep 17 00:00:00 2001 From: Paul Cornett Date: Wed, 13 Oct 2021 22:37:11 -0700 Subject: [PATCH] Fix creating wxButton using stock id with GTK Broken by 85d63c3150 (Add a class derived from GtkImage to support HiDPI bitmaps, 2020-09-15) See #19288 --- include/wx/gtk/private/image.h | 1 + src/gtk/anybutton.cpp | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) 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