When no text was on the front of a wrapper, the back wrapper text and tab were not in the proper location.
This was due to exiting the routine without doing the self.canvas.restoreState().
Cleaned up the code to be easier to read and to exit cleanly.