Fix of #5537 - GUI_App::post_init could be in some cases called before GUI_App::init_openg when GCode viewer is used.
The solution adds a status flag to GUI_App::init_openg and ensures that GUI_App::post_init isn't called before initialization in GUI_App::init_openg is done.
This commit is contained in:
parent
99f5dfbde7
commit
81878a6f79
2 changed files with 17 additions and 1 deletions
|
@ -669,7 +669,13 @@ wxGLContext* GUI_App::init_glcontext(wxGLCanvas& canvas)
|
||||||
|
|
||||||
bool GUI_App::init_opengl()
|
bool GUI_App::init_opengl()
|
||||||
{
|
{
|
||||||
|
#ifdef __linux__
|
||||||
|
bool status = m_opengl_mgr.init_gl();
|
||||||
|
m_opengl_initialized = true;
|
||||||
|
return status;
|
||||||
|
#else
|
||||||
return m_opengl_mgr.init_gl();
|
return m_opengl_mgr.init_gl();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void GUI_App::init_app_config()
|
void GUI_App::init_app_config()
|
||||||
|
@ -916,7 +922,14 @@ bool GUI_App::on_init_inner()
|
||||||
this->obj_manipul()->update_if_dirty();
|
this->obj_manipul()->update_if_dirty();
|
||||||
|
|
||||||
static bool update_gui_after_init = true;
|
static bool update_gui_after_init = true;
|
||||||
|
|
||||||
|
// An ugly solution to GH #5537 in which GUI_App::init_opengl (normally called from events wxEVT_PAINT
|
||||||
|
// and wxEVT_SET_FOCUS before GUI_App::post_init is called) wasn't called before GUI_App::post_init and OpenGL wasn't initialized.
|
||||||
|
#ifdef __linux__
|
||||||
|
if (update_gui_after_init && m_opengl_initialized) {
|
||||||
|
#else
|
||||||
if (update_gui_after_init) {
|
if (update_gui_after_init) {
|
||||||
|
#endif
|
||||||
update_gui_after_init = false;
|
update_gui_after_init = false;
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
this->mainframe->register_win32_callbacks();
|
this->mainframe->register_win32_callbacks();
|
||||||
|
|
|
@ -109,6 +109,9 @@ private:
|
||||||
bool m_app_conf_exists{ false };
|
bool m_app_conf_exists{ false };
|
||||||
EAppMode m_app_mode{ EAppMode::Editor };
|
EAppMode m_app_mode{ EAppMode::Editor };
|
||||||
bool m_is_recreating_gui{ false };
|
bool m_is_recreating_gui{ false };
|
||||||
|
#ifdef __linux__
|
||||||
|
bool m_opengl_initialized{ false };
|
||||||
|
#endif
|
||||||
|
|
||||||
wxColour m_color_label_modified;
|
wxColour m_color_label_modified;
|
||||||
wxColour m_color_label_sys;
|
wxColour m_color_label_sys;
|
||||||
|
|
Loading…
Reference in a new issue