+void wxWindowGTK::Update()
+{
+ if (!m_updateRegion.IsEmpty())
+ {
+ printf( "never gets called\n" );
+ }
+}
+
+void wxWindowGTK::GtkSendPaintEvents()
+{
+ m_clipPaintRegion = TRUE;
+
+ wxWindowDC dc( this );
+ dc.SetClippingRegion( m_updateRegion );
+ wxEraseEvent erase_event( GetId(), &dc );
+ erase_event.SetEventObject( this );
+
+#if 1
+ GetEventHandler()->ProcessEvent( erase_event );
+#else
+ if (!GetEventHandler()->ProcessEvent(erase_event))
+ {
+ if (!GetEventHandler()->ProcessEvent(erase_event))
+ {
+ wxClientDC dc( this );
+ dc.SetBrush( wxBrush( GetBackgroundColour(), wxSOLID ) );
+ dc.SetPen( *wxTRANSPARENT_PEN );
+
+ wxRegionIterator upd( m_updateRegion );
+ while (upd)
+ {
+ dc.DrawRectangle( upd.GetX(), upd.GetY(), upd.GetWidth(), upd.GetHeight() );
+ upd ++;
+ }
+ }
+ }
+#endif
+
+ wxNcPaintEvent nc_paint_event( GetId() );
+ nc_paint_event.SetEventObject( this );
+ GetEventHandler()->ProcessEvent( nc_paint_event );
+
+ wxPaintEvent paint_event( GetId() );
+ paint_event.SetEventObject( this );
+ GetEventHandler()->ProcessEvent( paint_event );
+
+ m_updateRegion.Clear();
+
+ m_clipPaintRegion = FALSE;
+}
+