aboutsummaryrefslogtreecommitdiffstats
path: root/src/xterm.c
diff options
context:
space:
mode:
authorJan D2015-05-17 16:46:34 +0200
committerJan D2015-05-17 16:46:34 +0200
commit6445ee0fb751ae2c1dfef900d44721b3d952812f (patch)
treed43006cb93d9ea7b00ea02aabcd5577c41ff827f /src/xterm.c
parentf92ac2e82ed199d6f25d2a59508e08addb1150ac (diff)
parentc9c4708ed47b18987940a71b98eb9873150d2b95 (diff)
downloademacs-6445ee0fb751ae2c1dfef900d44721b3d952812f.tar.gz
emacs-6445ee0fb751ae2c1dfef900d44721b3d952812f.zip
Merge branch 'master' into cairo
Diffstat (limited to 'src/xterm.c')
-rw-r--r--src/xterm.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/xterm.c b/src/xterm.c
index 3d3e0a70cfa..8f595c87214 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -263,7 +263,7 @@ static int x_dispatch_event (XEvent *, Display *);
263#endif 263#endif
264/* Don't declare this _Noreturn because we want no 264/* Don't declare this _Noreturn because we want no
265 interference with debugging failing X calls. */ 265 interference with debugging failing X calls. */
266static void x_connection_closed (Display *, const char *); 266static void x_connection_closed (Display *, const char *, bool);
267static void x_wm_set_window_state (struct frame *, int); 267static void x_wm_set_window_state (struct frame *, int);
268static void x_wm_set_icon_pixmap (struct frame *, ptrdiff_t); 268static void x_wm_set_icon_pixmap (struct frame *, ptrdiff_t);
269static void x_initialize (void); 269static void x_initialize (void);
@@ -3664,7 +3664,9 @@ x_draw_glyph_string (struct glyph_string *s)
3664static void 3664static void
3665x_shift_glyphs_for_insert (struct frame *f, int x, int y, int width, int height, int shift_by) 3665x_shift_glyphs_for_insert (struct frame *f, int x, int y, int width, int height, int shift_by)
3666{ 3666{
3667 x_free_cr_resources (f); 3667/* Never called on a GUI frame, see
3668 http://lists.gnu.org/archive/html/emacs-devel/2015-05/msg00456.html
3669*/
3668 XCopyArea (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), FRAME_X_WINDOW (f), 3670 XCopyArea (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), FRAME_X_WINDOW (f),
3669 f->output_data.x->normal_gc, 3671 f->output_data.x->normal_gc,
3670 x, y, width, height, 3672 x, y, width, height,
@@ -9249,7 +9251,7 @@ static char *error_msg;
9249 the text of an error message that lead to the connection loss. */ 9251 the text of an error message that lead to the connection loss. */
9250 9252
9251static void 9253static void
9252x_connection_closed (Display *dpy, const char *error_message) 9254x_connection_closed (Display *dpy, const char *error_message, bool ioerror)
9253{ 9255{
9254 struct x_display_info *dpyinfo = x_display_info_for_display (dpy); 9256 struct x_display_info *dpyinfo = x_display_info_for_display (dpy);
9255 Lisp_Object frame, tail; 9257 Lisp_Object frame, tail;
@@ -9268,6 +9270,7 @@ x_connection_closed (Display *dpy, const char *error_message)
9268 dpyinfo->reference_count++; 9270 dpyinfo->reference_count++;
9269 dpyinfo->terminal->reference_count++; 9271 dpyinfo->terminal->reference_count++;
9270 } 9272 }
9273 if (ioerror) dpyinfo->display = 0;
9271 9274
9272 /* First delete frames whose mini-buffers are on frames 9275 /* First delete frames whose mini-buffers are on frames
9273 that are on the dead display. */ 9276 that are on the dead display. */
@@ -9405,7 +9408,7 @@ x_error_quitter (Display *display, XErrorEvent *event)
9405 XGetErrorText (display, event->error_code, buf, sizeof (buf)); 9408 XGetErrorText (display, event->error_code, buf, sizeof (buf));
9406 sprintf (buf1, "X protocol error: %s on protocol request %d", 9409 sprintf (buf1, "X protocol error: %s on protocol request %d",
9407 buf, event->request_code); 9410 buf, event->request_code);
9408 x_connection_closed (display, buf1); 9411 x_connection_closed (display, buf1, false);
9409} 9412}
9410 9413
9411 9414
@@ -9420,7 +9423,7 @@ x_io_error_quitter (Display *display)
9420 9423
9421 snprintf (buf, sizeof buf, "Connection lost to X server `%s'", 9424 snprintf (buf, sizeof buf, "Connection lost to X server `%s'",
9422 DisplayString (display)); 9425 DisplayString (display));
9423 x_connection_closed (display, buf); 9426 x_connection_closed (display, buf, true);
9424 return 0; 9427 return 0;
9425} 9428}
9426 9429
@@ -12251,7 +12254,7 @@ static struct redisplay_interface x_redisplay_interface =
12251 x_draw_window_cursor, 12254 x_draw_window_cursor,
12252 x_draw_vertical_window_border, 12255 x_draw_vertical_window_border,
12253 x_draw_window_divider, 12256 x_draw_window_divider,
12254 x_shift_glyphs_for_insert, 12257 x_shift_glyphs_for_insert, /* Never called, se comment in function. */
12255 x_show_hourglass, 12258 x_show_hourglass,
12256 x_hide_hourglass 12259 x_hide_hourglass
12257 }; 12260 };