'Push the current view limits and position onto their respective stacks'

def push_current(self, figure=None):

    if (not figure):
        figure = self.figure
    views = WeakKeyDictionary()
    pos = WeakKeyDictionary()
    for a in figure.get_axes():
        views[a] = a._get_view()
        pos[a] = self._axes_pos(a)
    self.views[figure].push(views)
    self.positions[figure].push(pos)
