From d925a42659cb0757f935c750e6c1e25d6cc3b035 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Sun, 22 Jun 2008 14:02:07 +0000 Subject: [PATCH] (x_set_frame_alpha): Add x_catch_errors for bug#437. --- src/ChangeLog | 5 +++++ src/xterm.c | 18 ++++++++++++------ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index fc0a84128b3..3b5d8ff1fd6 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -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 --git a/src/xterm.c b/src/xterm.c index d2222b4a9b9..9f3ce1a6608 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -497,26 +497,32 @@ x_set_frame_alpha (f) { 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 (); } -- 2.11.4.GIT