# HG changeset patch # User Stefan Monnier # Date 1214143327 0 # Node ID 3c914bd3d4a19a4f3646d2628516aad5c9930517 # Parent 568f14ebb6845c86e2bb9fe06a80b6a5e3be0c72 (x_set_frame_alpha): Add x_catch_errors for bug#437. diff -r 568f14ebb684 -r 3c914bd3d4a1 src/ChangeLog --- a/src/ChangeLog Sun Jun 22 13:57:28 2008 +0000 +++ b/src/ChangeLog Sun Jun 22 14:02:07 2008 +0000 @@ -1,3 +1,8 @@ +2008-06-21 Seiji Zenitani + Ryo Yoshitake + + * xterm.c (x_set_frame_alpha): Add x_catch_errors for bug#437. + 2008-06-22 Stefan Monnier * Makefile.in (${lisp} ${SOME_MACHINE_LISP}, ../lisp/loaddefs.el): diff -r 568f14ebb684 -r 3c914bd3d4a1 src/xterm.c --- a/src/xterm.c Sun Jun 22 13:57:28 2008 +0000 +++ b/src/xterm.c Sun Jun 22 14:02:07 2008 +0000 @@ -497,26 +497,32 @@ { unsigned char *data; Atom actual; - int format; + int rc, format; unsigned long n, left; - XGetWindowProperty(dpy, win, XInternAtom(dpy, OPACITY, False), - 0L, 1L, False, XA_CARDINAL, &actual, &format, &n, &left, - &data); - if (actual != None) + x_catch_errors (dpy); + rc = XGetWindowProperty(dpy, win, XInternAtom(dpy, OPACITY, False), + 0L, 1L, False, XA_CARDINAL, + &actual, &format, &n, &left, + &data); + + if (rc == Success && actual != None) if (*(unsigned long *)data == opac) { XFree ((void *) data); + x_uncatch_errors (); return; } else XFree ((void *) data); + x_uncatch_errors (); } + x_catch_errors (dpy); XChangeProperty (dpy, win, XInternAtom (dpy, OPACITY, False), XA_CARDINAL, 32, PropModeReplace, (unsigned char *) &opac, 1L); - XSync (dpy, False); + x_uncatch_errors (); }