Implemented MSW's paint region clipping, but

it exposed some bug in GTK's guffaw stuff.
  Implmented GC pooling.
  Implemented Corrcet mixing of pain region clipping,
    user clipping and masked bitmap clipping.
  Minor other corrections.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6172 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
2000-02-21 14:16:32 +00:00
parent 78066fbfd4
commit 3d2d8da1d8
15 changed files with 722 additions and 243 deletions

View File

@@ -615,20 +615,24 @@ static void gtk_window_expose_callback( GtkWidget *WXUNUSED(widget), GdkEventExp
if (!win->m_hasVMT)
return;
/*
if (win->GetName() == wxT("columntitles"))
{
wxPrintf( wxT("OnExpose from ") );
if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
wxPrintf( win->GetClassInfo()->GetClassName() );
wxPrintf( wxT(" %d %d %d %d\n"), (int)gdk_event->area.x,
(int)gdk_event->area.y,
(int)gdk_event->area.width,
(int)gdk_event->area.height );
}
*/
win->GetUpdateRegion().Union( gdk_event->area.x,
gdk_event->area.y,
gdk_event->area.width,
gdk_event->area.height );
/*
wxPrintf( "OnExpose from " );
if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
wxPrintf( win->GetClassInfo()->GetClassName() );
wxPrintf( " %d %d %d %d\n", (int)gdk_event->area.x,
(int)gdk_event->area.y,
(int)gdk_event->area.width,
(int)gdk_event->area.height );
*/
if (gdk_event->count > 0)
return;
@@ -656,22 +660,22 @@ static void gtk_window_draw_callback( GtkWidget *WXUNUSED(widget),
if (g_isIdle)
wxapp_install_idle_handler();
if (!win->m_hasVMT)
return;
/*
if ((win->GetName() == wxT("columntitles")) && (rect->x == 2))
{
wxPrintf( wxT("OnDraw from ") );
if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
wxPrintf( win->GetClassInfo()->GetClassName() );
wxPrintf( wxT(" %d %d %d %d\n"), (int)rect->x,
(int)rect->y,
(int)rect->width,
(int)rect->height );
}
*/
win->GetUpdateRegion().Union( rect->x, rect->y,
rect->width, rect->height );
/*
wxPrintf( "OnDraw from " );
if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
printf( win->GetClassInfo()->GetClassName() );
wxPrintf( " %d %d %d %d\n", (int)rect->x,
(int)rect->y,
(int)rect->width,
(int)rect->height );
*/
wxEraseEvent eevent( win->GetId() );
eevent.SetEventObject( win );
win->GetEventHandler()->ProcessEvent(eevent);
@@ -1718,7 +1722,7 @@ gtk_window_realized_callback( GtkWidget *WXUNUSED(m_widget), wxWindow *win )
wxWindowCreateEvent event( win );
event.SetEventObject( win );
win->GetEventHandler()->ProcessEvent( event );
return FALSE;
}