Here is an updated patch which is no longer bit-rotted. I am not happy with the implementation, though. In a perfect world, the canvas color would actually be a checkerboard of two colors, like the GIMP or any other program has. Falling short of that, it should certainly not have an opacity setting like it has here. The canvas is the bottom-most thing in the drawing, so an opacity setting makes no sense.
To fix this, I will create another patch which introduces a RegisterdColorPicker without opacity sliders. That will allow the canvas color to be fully opaque.