--- wine-20030508/dlls/x11drv/event.c.orig Tue Jul 8 00:03:21 2003 +++ wine-20030508/dlls/x11drv/event.c Tue Jul 8 00:04:10 2003 @@ -131,25 +131,38 @@ */ static int process_events( struct x11drv_thread_data *data ) { - XEvent event; - int count = 0; +XEvent event; +int count = 0; + +wine_tsx11_lock(); + +if( DGAUsed ) { + +while ( XPending( gdi_display ) ) +{ +XNextEvent( gdi_display, &event ); +wine_tsx11_unlock(); +EVENT_ProcessEvent( &event ); +count++; +wine_tsx11_lock(); +} + +} else { + +while ( XPending( data->display ) ) +{ +XNextEvent( data->display, &event ); +wine_tsx11_unlock(); +EVENT_ProcessEvent( &event ); +count++; +wine_tsx11_lock(); +} - wine_tsx11_lock(); - while ( XPending( data->display ) ) - { - Bool ignore; - - XNextEvent( data->display, &event ); - ignore = XFilterEvent( &event, None ); - wine_tsx11_unlock(); - if (!ignore) EVENT_ProcessEvent( &event ); - count++; - wine_tsx11_lock(); - } - wine_tsx11_unlock(); - return count; } +wine_tsx11_unlock(); +return count; +} /*********************************************************************** * MsgWaitForMultipleObjectsEx (X11DRV.@)