I just tried using an XLib surface and it works as you would expect. It seems like an obvious bug that would have been found by now so maybe it's only a problem with the python bindings?