diff --git a/src/gui/guiButtonImage.cpp b/src/gui/guiButtonImage.cpp index fd3481d85..f085d4383 100644 --- a/src/gui/guiButtonImage.cpp +++ b/src/gui/guiButtonImage.cpp @@ -24,6 +24,18 @@ GUIButtonImage::GUIButtonImage(gui::IGUIEnvironment *environment, sendToBack(m_image.get()); } +void GUIButtonImage::draw() +{ + if (isDrawingBorder()) { + // `GUIButton` also allows drawing different textures depending on + // `EGUI_BUTTON_STATE` --> Skip everything if the border is disabled (else case). + GUIButton::draw(); + } else { + IGUIElement::draw(); + } +} + + void GUIButtonImage::setForegroundImage(irr_ptr image, const core::rect &middle) { diff --git a/src/gui/guiButtonImage.h b/src/gui/guiButtonImage.h index c07be178b..dd84b2569 100644 --- a/src/gui/guiButtonImage.h +++ b/src/gui/guiButtonImage.h @@ -19,6 +19,9 @@ public: s32 id, core::rect rectangle, ISimpleTextureSource *tsrc, bool noclip = false); + //! draws the element and its children + virtual void draw() override; + void setForegroundImage(irr_ptr image = nullptr, const core::rect &middle = core::rect());