gtk* bug

I think we have a problem in GTK. In the script below, if

    > you add a button or some other widget above the figure
    > canvas, only a part of the canvas is updated in the
    > motion_notify_event update. The distance from the top of
    > the figure canvas to the part that is not updated is equal
    > to the height of the widget packed above the canvas. You
    > can observe this by resizing the window to make it taller or
    > shorter and noting the vertical extent where the horizontal
    > line disappears.

I think the answer is

    def draw(self):
        # synchronous window redraw (like GTK+ 1.2 used to do)
        # Note: this does not follow the usual way that GTK redraws,
        # which is asynchronous redraw using calls to gtk_widget_queue_draw(),
        # which triggers an expose-event
        
        # GTK+ 2.x style draw()
        #self._need_redraw = True
        #self.queue_draw()

        # synchronous draw (needed for animation)
        x, y, w, h = self.allocation
        #print x, y, w, h
        self._pixmap_prepare (w, h)
        self._render_figure(self._pixmap, w, h)
        self._need_redraw = False
        self.window.draw_drawable (self.style.fg_gc[self.state],
                                   self._pixmap, 0, 0, 0, 0, w, h)
                                                 ^^^^^^^^^^