emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master a05810b: Fix xwidget's webkitgtk widget overriding of Emacs SIGCH


From: Lars Ingebrigtsen
Subject: master a05810b: Fix xwidget's webkitgtk widget overriding of Emacs SIGCHLD handler
Date: Mon, 9 Nov 2020 08:53:20 -0500 (EST)

branch: master
commit a05810b2d5f1a87ad1b20c4e61adc464a31e315d
Author: Akira Kyle <akira@akirakyle.com>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    Fix xwidget's webkitgtk widget overriding of Emacs SIGCHLD handler
    
    * src/xwidget.c (make-xwidget): Save and restore Emacs SIGCHLD signal
    handler since glib doesn't (but should) do this.
    Copyright-paperwork-exempt: yes
---
 src/xwidget.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/src/xwidget.c b/src/xwidget.c
index 031975f..e078a28 100644
--- a/src/xwidget.c
+++ b/src/xwidget.c
@@ -128,6 +128,16 @@ Returns the newly constructed xwidget, or nil if 
construction fails.  */)
       if (EQ (xw->type, Qwebkit))
         {
           xw->widget_osr = webkit_web_view_new ();
+
+          /* webkitgtk uses GSubprocess which sets sigaction causing
+             Emacs to not catch SIGCHLD with its usual handle setup in
+             catch_child_signal().  This resets the SIGCHLD
+             sigaction.  */
+          struct sigaction old_action;
+          sigaction (SIGCHLD, NULL, &old_action);
+          webkit_web_view_load_uri(WEBKIT_WEB_VIEW (xw->widget_osr),
+                                   "about:blank");
+          sigaction (SIGCHLD, &old_action, NULL);
         }
 
       gtk_widget_set_size_request (GTK_WIDGET (xw->widget_osr), xw->width,



reply via email to

[Prev in Thread] Current Thread [Next in Thread]