Panning images and glCopyPixels

In theory should it be possible to pan through a large image by copying pixels from the front to the back buffer (with a shift applied) , and then drawing pixels for just a thin slice?

On Mac OSX I end up with a partially smeared image, as if something else is manipulating the buffers as well or the pixels are getting copied to the wrong place. I haven’t tried everything possible to fix this. My code is single-threaded, JOGL tests as being double-buffered, this is running in a window rather than full-screen. I’m curious to know if the theory is correct first before digging any deeper.