Implement inertial / kinetic viewport scrolling

[#47556137] [#51414179]