Fix #2134 Horizontal scroll bar covers up last row. 

now WHEN_NEEDED really acts like ALWAYS when the scrollbar is shown.
So the viewport is different, and the sudden scrollbar widths and
heights are set and used in calculations for the various widths and
heights
Merge pull request #2361 from Servoy/scrollbar_when_needed_fixes

Fix #2134 Horizontal scroll bar covers up last row.