xorg-x11-server/p_xnest-ignore-getimage-errors.diff
Stefan Dirsch 7e6a980b1f Accepting request 35298 from home:oertel:branches:openSUSE:Factory
Copy from home:oertel:branches:openSUSE:Factory/xorg-x11-server via accept of submit request 35298 revision 8.
Request was accepted with message:
reviewed ok.

OBS-URL: https://build.opensuse.org/request/show/35298
OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/xorg-x11-server?expand=0&rev=229
2010-03-20 02:42:15 +00:00

33 lines
993 B
Diff

Index: build-GucBkyZ/xorg-server-1.6.3.901/hw/xnest/GCOps.c
================================================================================
--- BUILD/xorg-server-1.7.99/hw/xnest/GCOps.c
+++ BUILD/xorg-server-1.7.99/hw/xnest/GCOps.c
@@ -94,6 +94,13 @@
}
}
+static int
+xnestIgnoreErrorHandler (Display *display,
+ XErrorEvent *event)
+{
+ return False; /* return value is ignored */
+}
+
void
xnestGetImage(DrawablePtr pDrawable, int x, int y, int w, int h,
unsigned int format, unsigned long planeMask,
@@ -101,9 +108,13 @@
{
XImage *ximage;
int length;
+ int (*old_handler)(Display*, XErrorEvent*);
+ /* we may get BadMatch error when xnest window is minimized */
+ old_handler = XSetErrorHandler (xnestIgnoreErrorHandler);
ximage = XGetImage(xnestDisplay, xnestDrawable(pDrawable),
x, y, w, h, planeMask, format);
+ XSetErrorHandler (old_handler);
if (ximage) {
length = ximage->bytes_per_line * ximage->height;