Version: (using KDE 4.0.1)
Installed from: Gentoo Packages
Compiler: gcc version 4.1.2 (Gentoo 4.1.2 p1.0.2)
Find any web page with a .gif animation. Use any "Stop Animations" entry from any menu. Animations proceed anyway.
Alternately, the bug reporting process should link to or query existing goals for future releases if this is a known bug that didn't make this release.
Confirmed on KDE 4.0.3 running on Fedora 9.
Visit http://www.gifs.net/subcategory/2/0/20/3D_Metal or a similar site, then right click and select "Stop Animations". Nothing happens.
Created attachment 24818 [details]
Very simple test case.
Ping? I'm bumping the severity to major because it's really really annoying to have animated GIFs blinking around when you want to read the text, IMHO this is a showstopper.
Oh and no, this is STILL not fixed in 4.1.0. :-(
I tracked this down to CachedImage::setShowAnimations in kdelibs/khtml/misc/loader.cpp being completely commented out. :-(
Created attachment 27476 [details]
Patch (against 4.1.1, hopefully also applies to trunk)
I've tested this patch to fix the issue. Any objections to me committing this to trunk and 4.1?
Wow, thank you. Looks great.
Just one tiny nitpick: could you please remove m_showAnimations in CachedImage?
(Also, you actually don't need to loop to following frames to check for
animation providers --- they are always at frame 0).
... And I need to clean out all the #if 0'd QMovie mess.
Well, I copied that loop out of Image::refSize, which tries to clone an animProvider for each frame (but clone isn't actually implemented in the GifAnimProvider, so this doesn't work anyway). I'm removing my loops as they aren't actually needed, but something needs to be done to refSize.
Created attachment 27477 [details]
Patch (second try)
This addresses your nitpicks:
* no longer loops through all planes, only the "original" one
* removes the no longer used CachedImage::m_showAnimations
Tested, still works just as fine as before.
Looks great, thank you! Please do go ahead, for both branches.
Fixed in trunk and 4.1:
(BUG and CCBUG are still not working, unfortunately.)