.. 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.

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 = True