For a scroll window to mesh correctly with h4w geometry it needs to
consider that the scrollbar widths cause the internal requests to change.
So for instance, when a scroll window has a child that prefers height-for-width
(as opposed to width-for-height); then when adding height to the window the
scrollbar will eventually disappear.
while the height increases, it is possible (likely) to reach the threshold where
the content requires a height-for-width-without-vertical-scrollbar that fits
the allocation... this threshold will be reached before the scrollbar
adjustments indicate that the scrollbar should disappear.
For a scroll window to mesh correctly with h4w geometry it needs to consider that the scrollbar widths cause the internal requests to change.
So for instance, when a scroll window has a child that prefers height-for-width (as opposed to width-for-height); then when adding height to the window the scrollbar will eventually disappear.
while the height increases, it is possible (likely) to reach the threshold where the content requires a height-for-width-without-vertical-scrollbar that fits the allocation... this threshold will be reached before the scrollbar adjustments indicate that the scrollbar should disappear.
This bug was solved in GTK+ as bug: https://bugzilla.gnome.org/show_bug.cgi?id=629778 (where you will find an animated gif displaying the problem)
Also, I consulted StScrollView to fix it... StScrollView already has some code to handle this case...