This `get_window_extent()` causes problems on MacOSX.  (related to the blitting problems with `macosx`).  You can get around it by calling `self.canvas.draw()` before `get_window_extent()`, but can be laggy.  If you check the backend, you can only inflict the lag on `macosx` users.  But then you're putting backend checks into supposedly backend independent widgets.

Any less hacky ideas of how to get the rendered width of a block of text?