summaryrefslogtreecommitdiff
path: root/src/xterm.c
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2011-10-14 13:44:39 -0400
committerStefan Monnier <monnier@iro.umontreal.ca>2011-10-14 13:44:39 -0400
commit6b02f655f1f20477b8a936bbf621e602542aca15 (patch)
tree39358de00ac03f81e7740e22eced5ec08e9240ca /src/xterm.c
parent186f4720cca79dc4261d538abe2d30429246122b (diff)
downloademacs-6b02f655f1f20477b8a936bbf621e602542aca15.tar.gz
* src/xterm.c (frame_highlight, frame_unhighlight): Ignore unexplained
errors in XSetWindowBorder. Fixes: debbugs:9310
Diffstat (limited to 'src/xterm.c')
-rw-r--r--src/xterm.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/xterm.c b/src/xterm.c
index 4d3b572ade9..333132b92cb 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -3355,8 +3355,14 @@ frame_highlight (struct frame *f)
and border pixel are window attributes which are "private to the
client", so we can always change it to whatever we want. */
BLOCK_INPUT;
+ /* I recently started to get errors in this XSetWindowBorder, depending on
+ the window-manager in use, tho something more is at play since I've been
+ using that same window-manager binary for ever. Let's not crash just
+ because of this (bug#9310). */
+ x_catch_errors (FRAME_X_DISPLAY (f));
XSetWindowBorder (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
f->output_data.x->border_pixel);
+ x_uncatch_errors ();
UNBLOCK_INPUT;
x_update_cursor (f, 1);
x_set_frame_alpha (f);
@@ -3370,8 +3376,11 @@ frame_unhighlight (struct frame *f)
and border pixel are window attributes which are "private to the
client", so we can always change it to whatever we want. */
BLOCK_INPUT;
+ /* Same as above for XSetWindowBorder (bug#9310). */
+ x_catch_errors (FRAME_X_DISPLAY (f));
XSetWindowBorderPixmap (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
f->output_data.x->border_tile);
+ x_uncatch_errors ();
UNBLOCK_INPUT;
x_update_cursor (f, 1);
x_set_frame_alpha (f);