Fix display problems on Linux

This commit is contained in:
Gaute Lindkvist
2018-11-27 17:04:55 +01:00
parent 6f9cac7201
commit f2c7f2ce80
4 changed files with 18 additions and 3 deletions

View File

@@ -143,6 +143,7 @@ Rim3dView::Rim3dView(void)
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
Rim3dView::~Rim3dView(void) Rim3dView::~Rim3dView(void)
{ {
m_viewer->clearRimView();
removeMdiWindowFromMdiArea(); removeMdiWindowFromMdiArea();
deleteViewWidget(); deleteViewWidget();

View File

@@ -1078,7 +1078,7 @@ void RiuMainWindow::removeViewer(QWidget* viewer)
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RiuMainWindow::addViewer(QWidget* viewer, const RimMdiWindowGeometry& windowsGeometry) void RiuMainWindow::addViewer(QWidget* viewer, const RimMdiWindowGeometry& windowsGeometry)
{ {
RiuMdiSubWindow* subWin = new RiuMdiSubWindow(m_mdiArea); RiuMdiSubWindow* subWin = new RiuMdiSubWindow;
subWin->setAttribute(Qt::WA_DeleteOnClose); // Make sure the contained widget is destroyed when the MDI window is closed subWin->setAttribute(Qt::WA_DeleteOnClose); // Make sure the contained widget is destroyed when the MDI window is closed
subWin->setWidget(viewer); subWin->setWidget(viewer);
@@ -1109,6 +1109,8 @@ void RiuMainWindow::addViewer(QWidget* viewer, const RimMdiWindowGeometry& windo
initialStateMaximized = true; initialStateMaximized = true;
} }
m_mdiArea->addSubWindow(subWin);
if (subWindowPos.x() > -1) if (subWindowPos.x() > -1)
{ {
subWin->move(subWindowPos); subWin->move(subWindowPos);
@@ -1119,6 +1121,10 @@ void RiuMainWindow::addViewer(QWidget* viewer, const RimMdiWindowGeometry& windo
{ {
subWin->showMaximized(); subWin->showMaximized();
} }
else
{
subWin->showNormal();
}
slotRefreshViewActions(); slotRefreshViewActions();
} }

View File

@@ -214,6 +214,14 @@ RiuViewer::~RiuViewer()
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RiuViewer::clearRimView()
{
m_rimView = nullptr;
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@@ -70,7 +70,7 @@ class RiuViewer : public caf::Viewer, public RiuInterfaceToViewWindow
public: public:
RiuViewer(const QGLFormat& format, QWidget* parent); RiuViewer(const QGLFormat& format, QWidget* parent);
~RiuViewer() override; ~RiuViewer() override;
void clearRimView();
void setDefaultView(); void setDefaultView();
cvf::Vec3d pointOfInterest(); cvf::Vec3d pointOfInterest();
void setPointOfInterest(cvf::Vec3d poi); void setPointOfInterest(cvf::Vec3d poi);