ChangeSet ID: 21492 CVSROOT: /opt/cvs-commit Module name: wine Changes by: julliard@winehq.org 2005/11/28 05:06:40
Modified files: dlls/x11drv : graphics.c
Log message: Rein Klazes wijn@wanadoo.nl Handle an X error in X11DRV_ExtFloodFill().
Patch: http://cvs.winehq.org/patch.py?id=21492
Old revision New revision Changes Path 1.8 1.9 +7 -0 wine/dlls/x11drv/graphics.c
Index: wine/dlls/x11drv/graphics.c diff -u -p wine/dlls/x11drv/graphics.c:1.8 wine/dlls/x11drv/graphics.c:1.9 --- wine/dlls/x11drv/graphics.c:1.8 28 Nov 2005 11: 6:40 -0000 +++ wine/dlls/x11drv/graphics.c 28 Nov 2005 11: 6:40 -0000 @@ -1272,6 +1272,11 @@ static void X11DRV_InternalFloodFill(XIm }
+static int ExtFloodFillXGetImageErrorHandler( Display *dpy, XErrorEvent *event, void *arg ) +{ + return (event->request_code == X_GetImage && event->error_code == BadMatch); +} + /********************************************************************** * X11DRV_ExtFloodFill */ @@ -1292,10 +1297,12 @@ X11DRV_ExtFloodFill( X11DRV_PDEVICE *phy GetRgnBox( physDev->region, &rect );
wine_tsx11_lock(); + X11DRV_expect_error( gdi_display, ExtFloodFillXGetImageErrorHandler, NULL ); image = XGetImage( gdi_display, physDev->drawable, physDev->org.x + rect.left, physDev->org.y + rect.top, rect.right - rect.left, rect.bottom - rect.top, AllPlanes, ZPixmap ); + if(X11DRV_check_error()) image = NULL; wine_tsx11_unlock(); if (!image) return FALSE;