rework panning -- Squashed commit of the following: Author: Robin Gareus <robin@gareus.org> Author: Robin Gareus <robin@gareus.org> Author: Robin Gareus <robin@gareus.org> Author: Robin Gareus <robin@gareus.org> Author: Robin Gareus <robin@gareus.org> Author: Robin Gareus <robin@gareus.org> Author: Robin Gareus <robin@gareus.org> Author: Robin Gareus <robin@gareus.org> Author: Robin Gareus <robin@gareus.org> Author: Robin Gareus <robin@gareus.org> Author: Robin Gareus <robin@gareus.org> Author: Robin Gareus <robin@gareus.org> Author: Robin Gareus <robin@gareus.org> Author: Robin Gareus <robin@gareus.org> Author: Robin Gareus <robin@gareus.org> Author: Robin Gareus <robin@gareus.org> Author: Robin Gareus <robin@gareus.org> Author: Robin Gareus <robin@gareus.org>