close_keys should call `canvas.close`. And if a window closes (either by clicking the cross, or by `canvas.close`) the `events.close` *should* be emitted. But this is indeed not done in all backends. We should look into this, but maybe in a new PR (this one is getting BIG!)