code: def _on_expose_event(self, widget, event):
          '''
          .. versionchanged:: 0.20
              Renamed from ``on_widget__expose_event`` to allow wrapping for
              debouncing to improve responsiveness.
  
          Called when drawing area is first displayed and, for example, when part
          of drawing area is uncovered after being covered up by another window.
  
          Clear canvas, draw frame off screen, and mark dirty.
          '''
          logger.info('on_widget__expose_event')
  
          # Request immediate paint of pre-rendered off-screen Cairo surface to
          # drawing area widget, but also mark as dirty to redraw after next
          # render.
          self.draw()
          self._dirty_draw = Truf _on_expose_event(self, widget, event):
          '''
          .. versionchanged:: 0.20
              Renamed from ``on_widget__expose_event`` to allow wrapping for
              debouncing to improve responsiveness.
  
          Called when drawing area is first displayed and, for example, when part
          of drawing area is uncovered after being covered up by another window.
  
          Clear canvas, draw frame off screen, and mark dirty.
          '''
          logger.info('on_widget__expose_event')
  
          # Request immediate paint of pre-rendered off-screen Cairo surface to
          # drawing area widget, but also mark as dirty to redraw after next
          # render.
          self.draw()
          self._dirty_draw = True
docs: .. versionchanged:: 0.20
              Renamed from ``on_widget__expose_event`` to allow wrapping for
              debouncing to improve responsiveness.
  
          Called when drawing area is first displayed and, for example, when part
          of drawing area is uncovered after being covered up by another window.
  
          Clear canvas, draw frame off screen, and mark dirty.