aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/hw/xnest/GCOps.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2013-10-07 16:40:05 +0200
committermarha <marha@users.sourceforge.net>2013-10-07 16:40:05 +0200
commit8f0ed7f7a754df710b13b9dabbaa32b5d4211182 (patch)
tree03bf52a933c29962894c2cec5f33028439cf4f5a /xorg-server/hw/xnest/GCOps.c
parent7d29f4054380e7f42722c280b9caedce9fa4ace9 (diff)
parent81fd17c8678e89cea6610b8b2996b028b21eb5dc (diff)
downloadvcxsrv-8f0ed7f7a754df710b13b9dabbaa32b5d4211182.tar.gz
vcxsrv-8f0ed7f7a754df710b13b9dabbaa32b5d4211182.tar.bz2
vcxsrv-8f0ed7f7a754df710b13b9dabbaa32b5d4211182.zip
Merge remote-tracking branch 'origin/released'
* origin/released: xserver fontconfig libXdmcp mesa pixmand xkeyboard-config git update 7 oct 2013 Conflicts: xorg-server/dix/dispatch.c xorg-server/dix/privates.c xorg-server/glx/glxcmds.c xorg-server/hw/kdrive/ephyr/ephyr.h xorg-server/hw/kdrive/ephyr/ephyrinit.c xorg-server/hw/kdrive/ephyr/hostx.c
Diffstat (limited to 'xorg-server/hw/xnest/GCOps.c')
-rw-r--r--xorg-server/hw/xnest/GCOps.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/xorg-server/hw/xnest/GCOps.c b/xorg-server/hw/xnest/GCOps.c
index e26a1363b..7b1956de0 100644
--- a/xorg-server/hw/xnest/GCOps.c
+++ b/xorg-server/hw/xnest/GCOps.c
@@ -94,15 +94,29 @@ xnestPutImage(DrawablePtr pDrawable, GCPtr pGC, int depth, int x, int y,
}
}
+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, char *pImage)
{
XImage *ximage;
int length;
+ int (*old_handler)(Display*, XErrorEvent*);
+
+ /* we may get BadMatch error when xnest window is minimized */
+ XSync(xnestDisplay, False);
+ old_handler = XSetErrorHandler (xnestIgnoreErrorHandler);
ximage = XGetImage(xnestDisplay, xnestDrawable(pDrawable),
x, y, w, h, planeMask, format);
+ XSync(xnestDisplay, False);
+ XSetErrorHandler(old_handler);
if (ximage) {
length = ximage->bytes_per_line * ximage->height;