Windows 7 “busy” cursor misses a beat

First of all, a brief warning. This is one of those things that (like the arrow in the FedEx logo) cannot be “unseen”. Once you’re aware of it it will probably annoy you until the end of time. However fear not, thankfully there’s a simple solution to relieve the impending agony.

A sharp-eyed and on-beat user at the Windows 7 Taskforce has noted the default “busy” animated cursor in Windows 7 actually stutters a little during its animation loop. If you’re not seeing it at first, watch closely just before the shining highlight returns to the 12 o’clock position, skipping a beat somewhere around “11″ on the clock face. …Yes, there it is.

If you’d like to test the phenomenon for yourself, simply hover over this paragraph which overrides the cursor to display the busy cursor via CSS.

What’s most bizarre is although the style of the cursor is not new to Windows 7, the same cursor in Windows Vista actually does not exhibit the same phenomenon. A closeup of the cursors in slow-motion is provided below for forensic analysis.

Windows 7 “busy” cursor

Windows Vista “busy” cursor

Diving deeper into the guts of cursor files, its revealed the Windows 7 cursor is actually designed to display each frame for 3 “jiffies” (1/60 of a second) whereas the Vista cursor displays each frame for 2 jiffies. As the cursor animation is comprised of 18 frames in total, that’s a discrepancy of 0.3 of a second per loop. It’s not certain if this is indeed what’s causing the stutter, but it’s a good sign something changed.

Nevertheless if this stutter now bugs you, the brilliantly simple fix is to use the Vista cursor instead! If you don’t have a copy of Vista handy, you can get the cursor file here, copy to “%SYSTEMROOT%\Cursors” and configure your “Pointer” settings from the “Mouse” control panel.

After that’s all done, simply hover over the test area from above to appreciate the elegance and bliss of a smooth animated cursor again.

Update: Leo Davidson has tracked down the root cause of the issue and also made a proper fix download available here.

70 insightful thoughts

  1. Hi,
    I’m sorry to say but my Windows7 Ultimate 64Bit does not show this behaviour. The cursor animation is smooth.

    Andreas

  2. @Long: I am very certain. For me this icon runs smooth. However if more people experience this issue I’ll open up a bug report.

  3. Hi,
    I have to correct myself. I just opened the control applet and there I experience the same issue. However when for example hovering the paragraph it runs smooth without any issue.

  4. Wow, I didn’t know about the FedEx logo ethier, now I do, reminds me of when I was a little kid and I looked at the Telstra logo and reliased it was a “T”, lol.

    For those that do not know, Telstra is a major telephone and internet company in Australia.

  5. Interesting, if rather annoying article, Long. I’m going to try and forget this before I next see the “busy” cursor ;-)

    Reminds me of another issue which people have reported with Windows 7, and that is the way that windows “snap” in and out of place during animation. See the following thread: http://www.jcxp.net/forums/index.php?showtopic=35560
    Unfortunately the issue got a bit out of hand on JCXP, but there is a slow-mo video attached somewhere in the thread which clearly shows the jarring glitch ocurring.

  6. I hate to say it but I noticed this ages ago! (slow computer means I’m looking at it a lot)
    I believed it was intentional though as it has an almost hypnotic effect when stared at for long lengths of time.

  7. I’ll also add my name to the list of those unaffected by the stutter. I have only seen it during moments of extremely intensive system use.

  8. Oh wow… will we have to wait for SP1 (or Windows 8) for this to be fixed, or might Microsoft release a small patch on Windows Update? (Seems unlikely…)

  9. Why the hell would they even “update” the cursor, when it looks exactly the same as in Vista and it’s not tied to any low-level functions of the OS?

  10. That’s indeed an interesting find but I can’t see it in my Windows 7 RTM downloaded from TechNet account. The cursor is very smooth and doesn’t stutter. Very strange.

  11. It was intentional.

    The move was done to add a feeling of oscillation to busy tasks, thus making wait times not feel as long. It’s entirely psychological, and it’s one of the many reasons behind why Windows 7 just feels faster.

  12. So they tried to cleanup and innovate on the cursor front and enhance the cursor experience. http://en.wikipedia.org/wiki/Features_removed_from_Windows_7 => (The animated Aero cursor does not animate smoothly enough like in Windows Vista). Maybe your site should have a special section or tags reserved for removed or “a-step-back” features. It’s surprising how MS can bother to modify the cursor but not fix the glaring Windows Explorer issues due to limited time and resources.

  13. Damn! Now everyone will prefer the 7 cursor better because it’s not Vista. Dumbing down the cursor is the newest cool enhancement for Microsoft should be applauded and everyone should go and buy Windows 7.

  14. I have noticed this since RC… I always thought it was a glitch to do with my CPU or GPU…

    How on earth did they not notice this at MS… Lets hope SP1 sees a fix…

  15. Hmm. i don’t see this on Windows 7 RC Professional 64bit.. My icon runs smooth on both the CSS and the Mouse Control Panel.

  16. If you flatten the two cursors into two strips of frames (as it happens I wrote a viewer plugin which can do that :)) it’s easy to see the missing frame:

    http://nudel.kelbv.com/aero_cursor.png

    Doesn’t really bother me but, yup, it’s there (I can see it on my Win7 x64 RTM box too) and it doesn’t look intentional. (If they wanted it to spend 1 extra frame at 12 o’clock they still wouldn’t have removed the frame just before that.)

  17. Actually, it’s not the timing that’s the problem. In Windows 7 the cursor has two frames for the 12 ‘o clock position. The first and the last frame. There’s no frame being skipped. Just open the file %windir%\Cursors\aero_busy.ani in an editor for animated cursors like Microangelo Animator and see for yourself.

  18. @Dorian Muthig: FWIW, I’m not seeing that in the tool I have.

    If I open the Win7 aero_busy.ani in IconWorkshop I don’t see any repeated *or* missing frames. IconWorkshop isn’t really a cursor editor — it has a sister CursorWorkshop tool but I don’t have it — but IconWorkshop will open the .ani file and show all the frames in the file:

    http://nudel.kelbv.com/iw_aero_busy.ani.png

    Maybe the amount of time each frame is shown is what’s wrong. That info may be interpreted differently (or not at all) by different programs and map to the frames being shown multiple times or not at all.

    When viewing the cursor in normal use, and within the Mouse Properties control panel, there’s definitely a missing frame (and possibly a repeated frame as well), and the missing frame appears to be in the file.

    (I checked the _l and _xl files in case I was looking at the wrong one, but they all seem to have just one copy of each frame a swell.)

  19. Mystery solved!

    aero_busy.ani contains two sizes of images, 48×48 and 32×32, and the error is only in the 32×32 set.

    When you use the cursor in Windows it will choose the 32×32 images. (At least at normal DPI. I presume the 48×48 images will be used for high DPI but I haven’t checked.)

    Most ani file editors will show you the 48×48 images, which are fine, and that’s why aero_busy.ani seems fine when you open it up but has the glitch when you actually use it (at normal DPI).

    I used a hex editor & the .ani format definition to extract the individual .cur files for each frame.

    Each .cur file contains a 48×48 and 32×32 image, so I split those into separate images using the .cur format definition. It’s then easy to see that the 32×32 version of the 6th frame is wrong:

    http://nudel.kelbv.com/cursor_extract.png

    Frame 6 is a copy of frame 7. It’s byte-for-byte identical, as the MD5 checksum confirms. What should be frame 6 isn’t present in the file.

    So at 32×32 the effect is that frame 6 is skipped and frame 7 is shown twice.

    Also note that the 48×48 images are all unique.

    Maybe we can copy the 32×32 frame 6 from the Vista version into the Win7 file to get a “perfect” file which has all the right frames at both sizes.

  20. @Nihas: Yes, you’re right. There’s a similar problem there as well.

    With the large version (aero_busy_l.ani) there are again 48×48 and 32×32 images in the file, the 48×48 ones are fine but the 32×32 ones have a similar missing/duplicated frame problem. In this case the problem is with frame 12 (which is incorrectly a duplicate of frame 13) when the shine starts moving into the bottom-right quadrant

    Maybe there’s a problem with the extra-large file as well. Haven’t checked that one yet.

  21. BTW, if anyone is wondering why both the “normal” and “large” .ANI have the same image sizes inside of them (both contain 48×48 and 32×32 images) inside of them and also have identical file sizes, it’s just because the “normal” set are padded with more blank space and the images are uncompressed.

  22. Oops sorry.. I was using the Extra Large Aero Cursors, that’s why it wasn’t appearing. I tried that to the normal sized cursors and saw the glitch.

  23. I’ve created fixed versions of the two glitched busy cursors:

    http://www.pretentiousname.com/win7_fixed_aero_busy/

    These were made by transplanting the missing low-DPI frames from the old Vista cursors into the Windows 7 versions, so that you don’t lose the high-DPI versions and so the animation speed is consistent with the other cursors.

    Step 1 in the install instructions is very important:

    * First, ask yourself if you care about the little glitches enough to bother with all of this.

    :-)

  24. Am I the only one who prefers it with the lag? On Vista, it feels like it’s just spinning without doing anything. The slight lag makes it feel more like a machine that actually does something. It’s like waching the hourglass turn around rather than watching it trickle down endlessly, not going anywhere.

  25. Long,

    Microsoft does have an official Windows 7 RC Support Forum located here http://tinyurl.com/9fhdl5 . It is supported by product specialists as well as engineers and support teams. You may want to check the threads there for additional support and assistance.

    Jessica
    Microsoft Windows Client Team

  26. @Johnnie, it’s not wasting life. It’s about how passionate you are about Windows.
    @Jessica, ha! As if the feedback in the forums makes a difference.

  27. From Jessica: ” [the cursor] It is supported by product specialists as well as engineers and support teams”. Ha ha ha! C’mon!

  28. I don’t think its a bug, I think the pause is made to give a different feel to the movement, something like an easing function

  29. Are people who say it’s not a bug serious? If the mouse cursor is supposed to animate like this, why aren’t the larger versions affected or affected differently? Why is this animating circle not stuttering when used on the welcome screen or in IE8?

  30. Besides the cursor issue, which I’m experiencing, I also noticed that on my Ultimate x64 installation, Aero animations are frequently not smooth, while they were perfect in Visual Ultimate x64. My PC can be considered top-notch (i7 920, 12 GB RAM, nVidia GTX 275). Maybe it’s a driver issues…

  31. The exact frame where it stutters is different here.
    I “fixed” that by simply using some other cursor file from the ones that come with 7: “aero_busy_xl” or “aero_busy_l”

Leave a Reply