diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2011-10-14 13:44:39 -0400 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2011-10-14 13:44:39 -0400 |
commit | 6b02f655f1f20477b8a936bbf621e602542aca15 (patch) | |
tree | 39358de00ac03f81e7740e22eced5ec08e9240ca /src/xterm.c | |
parent | 186f4720cca79dc4261d538abe2d30429246122b (diff) | |
download | emacs-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.c | 9 |
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); |