Fix broken scrolling in mid-2010 MacBook Pros

May 28, 2010

I recently bought a spec'd-out 15" Core i7 MacBook Pro (to replace my late 2008 model) and for the most part it's been a perfect performer, and notably, for my day-to-day use, it runs much cooler than my previous Core 2 Duo notebook, despite all the reports I've seen that tell me it shouldn't. (Relatedly, I put a 256GB Crucial RealSSD C300 in the new machine and it just screams.)

The only problem I've had with the new MBP is that sometimes (and without prompt as far as I can tell) scrolling within programs, and the process of moving a program's window, are delayed significantly. For example, if I grab a window to move it across the screen, the window won't move at all until 2-4 seconds after I let go of the mouse, and then it just appears at the final position. This hasn't happened too often (three times in ~two weeks), but you can imagine my frustration when it does. Oddly, no other GUI interactions seem to be affected (e.g., cycling between tabs and open programs always works as expected).

After trying everything I could think of to right this behavior, including killing both the Finder and WindowServer, I remembered reading about an app — Cody Krieger's gfxCardStatus — that lets you switch manually between the machine's graphics subsystems. As you may know, these newer MacBook Pros come with two independent graphics solutions (integrated Intel HD Graphics, and a discrete NVIDIA GeForce GT 330M) that switch on/off dynamically depending on current processing requirements.

I downloaded the app, used it to switch from the NVIDIA card to the integrated Intel graphics and immediately everything was back to normal. I then activated the NVIDIA card and it too was now acting as it should. So, it seems Krieger's little app provides a simple solution (that doesn't require a reboot or even a logout/login sequence) to this annoying scrolling/window-position problem, which I suspect will be fixed in the next Mac OS X update.

You should follow me on Twitter here