code: def _updateCanvasDraw(self):
          
          fn = self.canvas.draw
          def draw2(*a,**k):
              self._updateGridSpec()
              return fn(*a,**k)
          self.canvas.draw = draw2
docs: Overload of the draw function that update
          axes position before each draw