It seems that the right answer was produced in GTK+ 2 due to a client-location callback, but change the code to use the intended approach of tracking the menu height.
get-gl-client-size
canvas%