The actual "bug" is much more general than simple viewmove. In fact, any time the center (for viewmove, or transform, or ...) on which initgrabz is called was behind the camera (in perspective, then), all mouse motion where reversed. What I added is a special handling case that reverts those situation to the default case (center = viewport offset). This changes the behavior for those case to something much more predictable/useable, but I doubt anyone expected it to work incorrectly, so I'd say that's alright. This covers other cases than transform and viewmove (which are the only ones I really tested), but I don't expect breakage elsewhere. If anyone disagrees with the change, feel free to offer a better solution.