From ddda00c52e5c382df16622963424b32bcf66ac9a Mon Sep 17 00:00:00 2001 From: "chunmao.guo" Date: Mon, 21 Nov 2022 17:34:18 +0800 Subject: [PATCH] FIX: MediaPlayCtrl crash on switch language Change-Id: If69bd42f586e6e15387ffe387c820480cbf750dd --- src/slic3r/GUI/MediaPlayCtrl.cpp | 16 +++++++++------- src/slic3r/GUI/MediaPlayCtrl.h | 2 ++ src/slic3r/GUI/StatusPanel.cpp | 5 ++++- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/slic3r/GUI/MediaPlayCtrl.cpp b/src/slic3r/GUI/MediaPlayCtrl.cpp index b593d0c1bf2..74373cf3125 100644 --- a/src/slic3r/GUI/MediaPlayCtrl.cpp +++ b/src/slic3r/GUI/MediaPlayCtrl.cpp @@ -59,13 +59,8 @@ MediaPlayCtrl::MediaPlayCtrl(wxWindow *parent, wxMediaCtrl2 *media_ctrl, const w // m_next_retry = wxDateTime::Now(); //#endif - auto onShowHide = [this](auto &e) { - e.Skip(); - if (m_isBeingDeleted) return; - IsShownOnScreen() ? Play() : Stop(); - }; - parent->Bind(wxEVT_SHOW, onShowHide); - parent->GetParent()->GetParent()->Bind(wxEVT_SHOW, onShowHide); + parent->Bind(wxEVT_SHOW, &MediaPlayCtrl::on_show_hide, this); + parent->GetParent()->GetParent()->Bind(wxEVT_SHOW, &MediaPlayCtrl::on_show_hide, this); m_lan_user = "bblp"; m_lan_passwd = "bblp"; @@ -387,6 +382,13 @@ void MediaPlayCtrl::SetStatus(wxString const &msg2, bool hyperlink) bool MediaPlayCtrl::IsStreaming() const { return m_streaming; } +void MediaPlayCtrl::on_show_hide(wxShowEvent &evt) +{ + evt.Skip(); + if (m_isBeingDeleted) return; + IsShownOnScreen() ? Play() : Stop(); +} + void MediaPlayCtrl::media_proc() { boost::unique_lock lock(m_mutex); diff --git a/src/slic3r/GUI/MediaPlayCtrl.h b/src/slic3r/GUI/MediaPlayCtrl.h index 4c8c1d010f0..36ca3175e9e 100644 --- a/src/slic3r/GUI/MediaPlayCtrl.h +++ b/src/slic3r/GUI/MediaPlayCtrl.h @@ -51,6 +51,8 @@ protected: void SetStatus(wxString const &msg, bool hyperlink = true); private: + void on_show_hide(wxShowEvent & evt); + void media_proc(); bool get_stream_url(std::string * url = nullptr); diff --git a/src/slic3r/GUI/StatusPanel.cpp b/src/slic3r/GUI/StatusPanel.cpp index 502827e9fbe..f056d0cb76a 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -158,7 +158,10 @@ StatusBasePanel::StatusBasePanel(wxWindow *parent, wxWindowID id, const wxPoint this->Layout(); } -StatusBasePanel::~StatusBasePanel() { delete m_media_play_ctrl; } +StatusBasePanel::~StatusBasePanel() +{ + delete m_media_play_ctrl; +} void StatusBasePanel::init_bitmaps() {