Image scrolling is broken when the gqview window is partially hidden by another window or by the edge of the screen.
Reproducing: open large image; put gqwiew window to be partially behind the edge of the screen; try to scroll image (by arrow keys or 1st mouse btn). Areas which are scrolled from the hidden area is grey.
Image scrolling is performed in pixbuf_renderer_scroll() function (gqview/src/pixbuf-renderer.c) in a "manual" way: visible part of window is copied with needed offset, new parts are redrawn. This algorithm knows nothind about hidden areas...
I think it is better to use gdk_window_scroll() function. It scrolls visible parts of the window and sends exposure events for all areas
which need to be redrawn, including areas scrolled from hidden parts of window.