fix form scrolling
The previous commit breaks form scrolling. Instead of keeping a copy of
all components' coordinates, move all components when the form is
scrolled and use their real coordinates adjusted by vertical offset to
get the coordinates and size of the form.