From 80adb54acfc5a42462e4e84ba17e36ee2d2c4f4b Mon Sep 17 00:00:00 2001 From: Leonardo Zide Date: Tue, 29 Dec 2020 14:42:59 -0800 Subject: [PATCH] Always keep 1 context valid. --- common/lc_mainwindow.cpp | 3 --- common/lc_viewwidget.cpp | 9 +++++++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/common/lc_mainwindow.cpp b/common/lc_mainwindow.cpp index d0136001..fb096382 100644 --- a/common/lc_mainwindow.cpp +++ b/common/lc_mainwindow.cpp @@ -83,9 +83,6 @@ void lcModelTabWidget::Clear() View->Clear(); mViews.RemoveAll(); mActiveView = nullptr; - lcViewWidget* Widget = (lcViewWidget*)layout()->itemAt(0)->widget(); - delete Widget->GetView(); - Widget->SetView(nullptr); } lcMainWindow::lcMainWindow() diff --git a/common/lc_viewwidget.cpp b/common/lc_viewwidget.cpp index 7a5010c1..94bcae22 100644 --- a/common/lc_viewwidget.cpp +++ b/common/lc_viewwidget.cpp @@ -51,12 +51,14 @@ QSize lcViewWidget::sizeHint() const void lcViewWidget::SetView(lcView* View) { - mView = View; - if (View) { if (context()) + { + makeCurrent(); View->mContext->SetGLContext(context()); + } + View->SetWidget(this); const float Scale = GetDeviceScale(); View->SetSize(width() * Scale, height() * Scale); @@ -64,6 +66,9 @@ void lcViewWidget::SetView(lcView* View) if (hasFocus()) View->SetFocus(true); } + + delete mView; + mView = View; } void lcViewWidget::SetPreviewPosition(const QRect& ParentRect)