summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSergio Ahumada <sergio.ahumada@digia.com>2013-03-19 09:20:55 +0100
committerSergio Ahumada <sergio.ahumada@digia.com>2013-03-19 09:21:43 +0100
commit1b8090c238b44d1811b9716e1c9c348f05371e16 (patch)
tree55f4cc8f689a2e2708a062e877681bbbd3014510
parent3e7042fb70597150a137e2e449b67e759d45c3fe (diff)
parent313d60c107d9659efd5e93ba5a036054f6b1ebba (diff)
Merge branch 'dev' into stable
This starts Qt 5.1 release cycle Change-Id: I2fc10bd848450dd3102e8525ba226ce3aa027cdd
-rw-r--r--src/plugins/imageformats/mng/qmnghandler.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/plugins/imageformats/mng/qmnghandler.cpp b/src/plugins/imageformats/mng/qmnghandler.cpp
index 395a783..1ee3bbd 100644
--- a/src/plugins/imageformats/mng/qmnghandler.cpp
+++ b/src/plugins/imageformats/mng/qmnghandler.cpp
@@ -263,6 +263,7 @@ mng_bool QMngHandlerPrivate::processHeader(mng_uint32 iWidth, mng_uint32 iHeight
bool QMngHandlerPrivate::getNextImage(QImage *result)
{
mng_retcode ret;
+ const bool savedHaveReadAll = haveReadAll;
if (haveReadNone) {
haveReadNone = false;
ret = mng_readdisplay(hMNG);
@@ -271,6 +272,13 @@ bool QMngHandlerPrivate::getNextImage(QImage *result)
}
if ((MNG_NOERROR == ret) || (MNG_NEEDTIMERWAIT == ret)) {
*result = image;
+
+ // QTBUG-28894 -- libmng produces an extra frame at the end
+ // of the animation on the first loop only.
+ if (nextDelay == 1 && (!savedHaveReadAll && haveReadAll)) {
+ ret = mng_display_resume(hMNG);
+ }
+
frameIndex = nextIndex++;
if (haveReadAll && (frameCount == 0))
frameCount = nextIndex;