docstr: Draw method for singleshot timer
  
  This draw method can be added to a singleshot timer, which can
  accumulate draws while the eventloop is spinning. This method will
  then only draw the first time and short-circuit the others.
docstr_tok: ["Draw","method","for","singleshot","timer","This","draw","method","can","be","added","to","a","singleshot","timer",",","which","can","accumulate","draws","while","the","eventloop","is","spinning",".","This","method","will","then","only","draw","the","first","time","and","short-circuit","the","others","."]
code: def _draw_idle(self):
      """
      Draw method for singleshot timer
  
      This draw method can be added to a singleshot timer, which can
      accumulate draws while the eventloop is spinning. This method will
      then only draw the first time and short-circuit the others.
      """
      with self._idle_draw_cntx():
          if not self._draw_pending:
              # Short-circuit because our draw request has already been
              # taken care of
              return
          self._draw_pending = False
          self.draw()
  
imports: import os
  import matplotlib
  from matplotlib import _api, cbook
  from matplotlib._pylab_helpers import Gcf
  from .None import _macosx
  from .backend_agg import FigureCanvasAgg
  from matplotlib.backend_bases import _Backend, FigureCanvasBase, FigureManagerBase, NavigationToolbar2, ResizeEvent, TimerBase, _allow_interrupt
label_desc: Use image node_id 5 for calling the FigureCanvasMac obj's underlying member method code with example usage: obj._draw_idle() without return types