diff options
| author | Méven Car <[email protected]> | 2025-01-18 14:15:56 +0100 |
|---|---|---|
| committer | Méven Car <[email protected]> | 2025-01-20 09:09:29 +0100 |
| commit | 5667fc9aaf0e98aa19f557fbed79f8c632ce7bf1 (patch) | |
| tree | 9fcba47d4d1c61814f5215b8996ca9399603bd29 /src/panels | |
| parent | 961e6270e4401a6c7512df3a2e3efd09a25df962 (diff) | |
InformationPanel: fix potential glitches with gifs
Diffstat (limited to 'src/panels')
| -rw-r--r-- | src/panels/information/pixmapviewer.cpp | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/panels/information/pixmapviewer.cpp b/src/panels/information/pixmapviewer.cpp index c870e9c3e..2767c87ea 100644 --- a/src/panels/information/pixmapviewer.cpp +++ b/src/panels/information/pixmapviewer.cpp @@ -43,14 +43,6 @@ void PixmapViewer::setPixmap(const QPixmap &pixmap) return; } - // Avoid flicker with static pixmap if an animated image is running - if (m_animatedImage) { - m_animatedImage->setScaledSize(pixmap.size()); - if (m_animatedImage->state() == QMovie::Running) { - return; - } - } - if ((m_transition != NoTransition) && (m_animation.state() == QTimeLine::Running)) { m_pendingPixmaps.enqueue(pixmap); if (m_pendingPixmaps.count() > 5) { @@ -62,6 +54,12 @@ void PixmapViewer::setPixmap(const QPixmap &pixmap) m_oldPixmap = m_pixmap.isNull() ? pixmap : m_pixmap; m_pixmap = pixmap; + + // Avoid flicker with static pixmap if an animated image is running + if (m_animatedImage && m_animatedImage->state() == QMovie::Running) { + return; + } + update(); const bool animateTransition = (m_transition != NoTransition) && (m_pixmap.size() != m_oldPixmap.size()); @@ -99,7 +97,6 @@ void PixmapViewer::setAnimatedImageFileName(const QString &fileName) } if (m_animatedImage->fileName() != fileName) { - m_animatedImage->stop(); m_animatedImage->setFileName(fileName); } @@ -166,6 +163,8 @@ void PixmapViewer::stopAnimatedImage() if (m_hasAnimatedImage) { m_animatedImage->stop(); m_hasAnimatedImage = false; + delete m_animatedImage; + m_animatedImage = nullptr; } } |
