]> git.eshelyaron.com Git - emacs.git/commitdiff
Stop synchronizing after sending XEmbed events
authorPo Lu <luangruo@yahoo.com>
Wed, 6 Jul 2022 08:31:54 +0000 (16:31 +0800)
committerPo Lu <luangruo@yahoo.com>
Wed, 6 Jul 2022 08:32:02 +0000 (16:32 +0800)
* src/xterm.c (xembed_send_message): Don't sync and handle
errors, which is actually why the XSync call in the spec exists.

src/xterm.c

index 0180ea3c788f3c36dacbdb5296db0f418f907b7f..225c45ff7cb970c12961ddd5fd56a0f455ac526e 100644 (file)
@@ -25208,9 +25208,14 @@ xembed_send_message (struct frame *f, Time t, enum xembed_message msg,
   event.xclient.data.l[3] = data1;
   event.xclient.data.l[4] = data2;
 
+  /* XXX: the XEmbed spec tells us to trap errors around this request,
+     but I don't understand why: there is no way for clients to
+     survive the death of the parent anyway.  */
+
+  x_ignore_errors_for_next_request (FRAME_DISPLAY_INFO (f));
   XSendEvent (FRAME_X_DISPLAY (f), FRAME_X_OUTPUT (f)->parent_desc,
              False, NoEventMask, &event);
-  XSync (FRAME_X_DISPLAY (f), False);
+  x_stop_ignoring_errors (FRAME_DISPLAY_INFO (f));
 }
 \f
 /* Change of visibility.  */