diff options
Diffstat (limited to 'src/datavisualization/engine/bars3dcontroller.cpp')
-rw-r--r-- | src/datavisualization/engine/bars3dcontroller.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/datavisualization/engine/bars3dcontroller.cpp b/src/datavisualization/engine/bars3dcontroller.cpp index 35b24218..c394ad2f 100644 --- a/src/datavisualization/engine/bars3dcontroller.cpp +++ b/src/datavisualization/engine/bars3dcontroller.cpp @@ -80,6 +80,13 @@ void Bars3DController::synchDataToRenderer() series->d_ptr->m_changeTracker.meshChanged = true; } + // If y range or reverse changed, scene needs to be updated to update camera limits + bool needSceneUpdate = false; + if (Abstract3DController::m_changeTracker.axisYRangeChanged + || Abstract3DController::m_changeTracker.axisYReversedChanged) { + needSceneUpdate = true; + } + Abstract3DController::synchDataToRenderer(); // Notify changes to renderer @@ -110,6 +117,13 @@ void Bars3DController::synchDataToRenderer() m_renderer->updateSelectedBar(m_selectedBar, m_selectedBarSeries); m_changeTracker.selectedBarChanged = false; } + + if (needSceneUpdate) { + // Since scene is updated before axis updates are handled, + // do another render pass for scene update + m_scene->d_ptr->m_sceneDirty = true; + emitNeedRender(); + } } void Bars3DController::handleArrayReset() |