The reason is that effects are applied by drawing things to an Fbo, made
automatic by overriding add_widget. However, it can't just override all
drawing because the widget has to draw a Rectangle (and maybe other
stuff) that actually display the result from applying the effects, so
the canvas acts as normal and doesn't have effects applied.
It would probably be possible to make this work, but it would be
necessary to capture some (not all) canvas drawing and redirect it,
while keeping the normal canvas as a child of the parent class. I
couldn't think of a nice way to do it.