title: PyGObject custom widget: how to draw an invalidated region?
body: <p>I know that you need to subclass <code>Gtk.DrawingArea</code> in PyGObject in order to create a custom widget. You then connect the <code>draw</code> signal to a callback that looks like this:</p>
  
  <pre><code>def on_draw(drawing_area, cr):
      # do something with cr
      return False
  </code></pre>
  
  <p>To ask for a redraw, you would call <code>my_widget.queue_draw()</code>.</p>
  
  <p>Now, I know that you may ask to redraw a specific region of the surface using <code>my_widget.queue_draw_area()</code>. When your <code>on_draw</code> callback gets called after this, how do you know the region to draw?</p>