Long's other attempts at world domination: Windows 7 Taskforce | Here's an idea | Bing Image Archive



August 15, 2009 11:56 pm AEST — By Long Zheng

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.

68 Responses

  1. Andreas Balzer says:

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

    Andreas

  2. Long Zheng says:

    @Andreas Balzer: Are you certain? I’m using Windows 7 Ultimate 64bit too and I see this.

  3. Adam Maras says:

    You’ve ruined my life now, Long. Thanks. I’m going to notice the damned thing… EVERY. SINGLE. TIME.

    Thanks. You’ll be hearing from my lawyers, Long.

  4. Andreas Balzer says:

    @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.

  5. Andreas Balzer says:

    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.

  6. Lab-Rat says:

    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.

  7. Andreas Balzer says:

    @Long:
    Did you make a clean installation or did you upgrade from RC, ..?

  8. Long Zheng says:

    @Andreas: Clean installation. This is on my desktop.

  9. John Sedlak says:

    Happens over here too – fairly clean installation of x64 ultimate.

    But could this possibly be as design? It seems as though it is a pause rather than a skip.

  10. Matt Sharpe says:

    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.

  11. hexeea says:

    yet another reason to stick with Vista :-)

  12. Andreas Balzer says:

    seems like Linux/Apple fanboys found the article :-/ Now it gets kind of silly.

  13. Carl says:

    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.

  14. GoodThings2Life says:

    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.

  15. Quppa says:

    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…)

  16. rajo says:

    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?

  17. TC says:

    I can confirm that this exists on a clean installation of Windows 7 Enterprise x64.

  18. Asbjørn says:

    I can confirm this behavior on Windows 7 RC1 32-bit. Why on earth would they have changed that cursor?

  19. Quppa says:

    In fact, why did they change this cursor but not the ‘Working In Background’ (Arrow + Spinner) cursor?

  20. Vishal Gupta says:

    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.

  21. Kirby says:

    I have windows 7 ultimate x64 and it stutters for me too.

  22. DCMonkey says:

    At least the pause lets you count the number of rotations. Maybe it’s by design?

  23. 123 says:

    seriously do we really care if the animation is a bit jittery?……. O_o

  24. Matt Sharpe says:

    @123: Yes, it’s called “attention to detail” and “quality”.

  25. Bryant says:

    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.

  26. Cleanup says:

    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.

  27. someone says:

    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.

  28. Jon says:

    This is a showstopper bug! Someone alert Walt Mossberg!

  29. Leith Bade says:

    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…

  30. John Sedlak says:

    Happens on Windows Server 2008 R2 x64 as well however not during installation.

  31. Johny john says:

    Why have they not updated the icon when you select a line of text its still not even aero !!!!!!!!

  32. Devmonster says:

    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.

  33. Johnnie says:

    Anyone who thinks this is even worth blogging about… needs to get a life.

  34. Leo Davidson says:

    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.)

  35. It works perfectly fine here.

  36. Okay, when I mouseover to your CSS thing, it works fine but in the Mouse Properties, it skips a frame. But not that major a problem I guess.

  37. Leo Davidson says:

    @Manmohanjit Singh: FWIW I can see it in both places. In fact, I find it easier to see in the Mouse Properties window since it animates the cursor more slowly than normal.

  38. levi3man says:

    yea i have this problem, and yes its is win windows vista ultimate RC 64bit. from a fresh install…

  39. levi3man says:

    sorry correction windows 7 ultimate….

  40. 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.

  41. Leo Davidson says:

    @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.)

  42. Nihahs says:

    Am I getting paranoid or is the large busy cursor doing the same thing except at 3 o’clock position?

  43. Leo Davidson says:

    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.

  44. The Patri0t says:

    You noticed this but not the issue where the Aero lags because of some issue for some users in Windows 7?

  45. Nihahs says:

    @Leo Can you confirm the same thing with the large one as well?

  46. rm20010 says:

    The ‘large’ Aero Busy cursor “jumps” at the 4 o’clock position.

  47. Leo Davidson says:

    @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.

  48. Leo Davidson says:

    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.

  49. jon says:

    How long did you spend tracking down this mystery then? :)

  50. Leo Davidson says:

    @jon: Um… twelvety!

  51. Matt S. says:

    I can confirm the glitch in Win 7 Pro RTM 32bit, you have to watch really closely but its there..

  52. Devmonster says:

    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.

  53. soem guy says:

    havent you got anything better to do?

  54. Leo Davidson says:

    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.

    :-)

  55. Ben says:

    i can think of some other things i’d fix instead of the dumb busy cursor animation.

  56. Leo Davidson says:

    @Ben: If only everything else was as easy to fix!

  57. Helms says:

    Fxcking chinese website(xxdrivers.com) have taken part of the article for their own.

  58. Fred says:

    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.

  59. JessicaD says:

    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

  60. Cursorer says:

    @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.

  61. Brian says:

    I don’t see this behaviour on my copy of Win7 x86 RTM. The cursor itself as well as the preview in Mouse properties animate smoothly.

  62. Anónimo says:

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

  63. brian.shapiro says:

    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

  64. relu84 says:

    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?

  65. Dario Solera says:

    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…

  66. Wren says:

    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