and update the grid as soon as a constraint is changed, not only on the next motion. Change GimpTransformTool to forward the events to the widget if it exists, but still handle them if it doesn't (yes this code duplication is ugly, but the widget can hardly handle events if it doesn't exist...).
4208ace app: make GimpToolTransformGrid handle modifiers itself
app/display/gimptooltransformgrid.c | 67 +++++++++++++++++++++++++++++++++++++
app/tools/gimptransformtool.c | 54 ++++++++++++++++++++++++++----
2 files changed, 115 insertions(+), 6 deletions(-)