From 36789e3449591b9a5aad64a3071c17e19e3196bf Mon Sep 17 00:00:00 2001 From: Christoph Schmidt-Hieber Date: Thu, 5 Sep 2019 13:22:00 +0200 Subject: [PATCH] Improve robustness of looking up wrapped wxObject --- samples/embedded/embedded.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/samples/embedded/embedded.cpp b/samples/embedded/embedded.cpp index 66fdf73f..c3b2903f 100644 --- a/samples/embedded/embedded.cpp +++ b/samples/embedded/embedded.cpp @@ -261,8 +261,17 @@ PyObject* wxPyMake_wxObject(wxObject* source, bool setThisOwn) { // python module. const wxClassInfo* info = source->GetClassInfo(); wxString name = info->GetClassName(); + wxString childname = name.Clone(); if (info) { target = wxPyConstructObject((void*)source, name.c_str(), setThisOwn); + while (target == NULL) { + info = info->GetBaseClass1(); + name = info->GetClassName(); + if (name == childname) + break; + childname = name.Clone(); + target = wxPyConstructObject((void*)source, name.c_str(), setThisOwn); + } if (target && isEvtHandler) ((wxEvtHandler*)source)->SetClientObject(new wxPyClientData(target)); if (target && isSizer)