diff --git a/app/widget/scope/histogram/histogram.cpp b/app/widget/scope/histogram/histogram.cpp index ab7cb66e1..b9028f85a 100644 --- a/app/widget/scope/histogram/histogram.cpp +++ b/app/widget/scope/histogram/histogram.cpp @@ -49,7 +49,9 @@ void HistogramScope::SetBuffer(Frame* frame) { buffer_ = frame; - StartUpdate(); + if (isVisible()) { + StartUpdate(); + } } void HistogramScope::FinishedProcessing(QVector red, QVector green, QVector blue) @@ -111,6 +113,13 @@ void HistogramScope::StartUpdate() } } +void HistogramScope::showEvent(QShowEvent* e) +{ + ManagedDisplayWidget::showEvent(e); + + StartUpdate(); +} + HistogramScopeWorker::HistogramScopeWorker() : cancelled_(false) { diff --git a/app/widget/scope/histogram/histogram.h b/app/widget/scope/histogram/histogram.h index ea5175726..3efad3919 100644 --- a/app/widget/scope/histogram/histogram.h +++ b/app/widget/scope/histogram/histogram.h @@ -78,6 +78,8 @@ protected: virtual void ColorProcessorChangedEvent() override; + virtual void showEvent(QShowEvent* e) override; + private: void StartUpdate(); diff --git a/app/widget/scope/waveform/waveform.cpp b/app/widget/scope/waveform/waveform.cpp index d8f6b6e71..21ef63dc3 100644 --- a/app/widget/scope/waveform/waveform.cpp +++ b/app/widget/scope/waveform/waveform.cpp @@ -49,6 +49,13 @@ void WaveformScope::SetBuffer(Frame *frame) UploadTextureFromBuffer(); } +void WaveformScope::showEvent(QShowEvent* e) +{ + ManagedDisplayWidget::showEvent(e); + + UploadTextureFromBuffer(); +} + void WaveformScope::initializeGL() { ManagedDisplayWidget::initializeGL(); @@ -93,7 +100,7 @@ void WaveformScope::paintGL() void WaveformScope::UploadTextureFromBuffer() { - if (!buffer_) { + if (!buffer_ || !isVisible()) { return; } diff --git a/app/widget/scope/waveform/waveform.h b/app/widget/scope/waveform/waveform.h index dd9d40452..6d2e808f5 100644 --- a/app/widget/scope/waveform/waveform.h +++ b/app/widget/scope/waveform/waveform.h @@ -45,6 +45,8 @@ protected: virtual void paintGL() override; + virtual void showEvent(QShowEvent* e) override; + private: void UploadTextureFromBuffer();