The issue is that GtkDrawingArea’s properties “vexpand” and “hexpand” are false by default.
Try
widget(c).hexpand = widget(c).vexpand = true
I think most often people want the canvas to expand, so maybe we should set these properties to true by default in GtkObservable’s canvas.